class A{
char * a;
public:
A(){a=NULL;}
A(int i){a=new char[i];}
A(char * b){a=b;}
~A(){}//这个不知道怎么写,
};
问题:a可能指向数组也可能动态new出来的,不知道析构如何写
char * a;
public:
A(){a=NULL;}
A(int i){a=new char[i];}
A(char * b){a=b;}
~A(){}//这个不知道怎么写,
};
问题:a可能指向数组也可能动态new出来的,不知道析构如何写
这里用复制内容过去.
A(char * b){strcpy(a,b);假设分配给a的内存足够大}
这个时候析构函数就可以写了
这样做是不好的最好把内容拷过来.char str[100] = {"123"} ;
A a1(str);
//...
A a2(str);
//...修改a1.b指向的内容,会修改a2.b指向的内容