首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

问个类初始化的有关问题

2012-03-30 
问个类初始化的问题我一个类,有一个指针成员p,有两个构造函数A、B。其中一个构造函数A需要先对传入参数进行

问个类初始化的问题
我一个类,有一个指针成员p,有两个构造函数A、B。
其中一个构造函数A需要先对传入参数进行处理,然后调用另一个构造函数B完成其余的初始化。

可问题来了:B单独调用,没有任何问题;若是通过A调用B,调用后,指针成员p就变成“错误的指针”了

测试类及代码如下,请帮忙指明错误。

C/C++ code
#include <iostream>class T{public:    T()    {p = new char[2];}    T(int)  {T();}    ~T()    {if (p) delete p;}    int test()    {        if (p) return 1;        else return 0;    }private:    char * p;};int _tmain(int argc, _TCHAR* argv[]){    T t(0); //  这里调用A    std::cout << t.test() << std::endl;    return 0;}


[解决办法]
T(int) {T();}
T()你这里仅仅是构造了一个匿名的临时对象
并没有实现你说的那个功能

热点排行