64,651
社区成员
发帖
与我相关
我的任务
分享
//char *ClassA::m_Data; //定义
ClassA::ClassA(const char *str):m_Data(0)
{
if(str != NULL)
{
m_Data = new char[strlen(str) + 1];
strcpy(m_Data, str);
}
}
#include <iostream>
using namespace std;
class A
{
private:
char* m_data;
public:
A(const char* str) : m_data(0)
{
if(m_data == 0)
{
cout << "m_data is 0" << endl;
if(strlen(str) > 0)
{
m_data = new char[strlen(str) + 1];
memset(m_data, 0, strlen(str) + 1);
strcpy(m_data, str);
}
}
else
{
cout << "m_data isn't 0" << endl;
memset(m_data, 0, strlen(str) + 1);
strcpy(m_data, str);
}
}
void print()
{
cout << m_data << endl;
}
~A()
{
if(m_data != NULL)
{
delete[] m_data;
m_data = NULL;
}
}
};
int main(int argc, char* argv[])
{
char* str = "hello";
A* pa = new A(str);
pa->print();
delete pa;
return 0;
}