【发布时间】:2012-06-02 22:00:46
【问题描述】:
我的问题是我不知道如何将 int 值转换为 char 数组 char* m_value。我尝试使用 itoa 但它不起作用。 itoa(m_val, m_wartosc, 10);也许还有其他功能可以做到这一点?
Main.cpp
int main(int argc, char *argv[])
{
LargeNumber l1;
LargeNumber l3(172839); //how to convert this int to char*
return 0;
}
LargeNumber.h
class LargeNumber{
public:
LargeNumber()
{
m_array = "0"; //zero for no arg.
}
LargeNumber(int val):m_val(val)
{
itoa(m_val, m_array, 10); //doesn't work
//sprintf(m_array, "%d", m_val);
}
LargeNumber(const LargeNumber& p):m_array(p.m_array)
{ } //copy constructor
~LargeNumber(){
delete []m_array; //for object with new
}
public: //should be private
int m_val;
char* m_array;
};
【问题讨论】:
-
你为什么需要,你已经有一个构造函数接受
int。 -
为什么要将您的号码以 10 进制存储为 ASCII 字符串?
-
我的程序需要同时拥有它们。我已经有一个需要
"string"。但是需要一个具有 int 值的变量。 -
我知道将数字存储为 char* 是错误的,但我需要对此进行管理。
-
旁注,如果使用默认构造函数,析构函数中的
delete[] m_array将尝试释放只读内存。
标签: c++ constructor char type-conversion