类对象重新初始化的问题
我定义一个类CT;有定义构造函数和析构函数
然后定义对象:CT ct(x,y);
一定操作后,执行:ct.~CT();
然后却不能写ct.CT(x1,y1);(就是说找不到构造函数)
于是我又在CT类中补写了一个Re成员函数,在函数中就是简单调用构造函数。
执行ct.Re(x1,y1);可以执行,但是ct中的数据成员并没有被赋值。
我只好把构造函数中的所有内容原封不动的复制到Re函数中。
执行ct.Re(x1,y1);可以执行,而且值都正确被赋值了。
这是为什么?
不知道我说清楚了吗?
[解决办法]
当然不能重新调用构造函数
从一个对象构造另一个对象要调用拷贝构造函数
你这个情况,只需要一个普通的成员函数
[解决办法]
不知道你的参数类型,只好T表示你使用的参数类型了:
1、CT(T x,T y);可有?
2、Re(T x,T y)调用的构造函数是什么?
3、类的数据成员初始化没?
看了半天,我得出以上问题
[解决办法]
完全有简单办法满足你的需求,但你若一定要再调用构造函数也是可以的,只是会让人费解,而且容易出事
给你个示例,仅仅是示例
- C/C++ code
class A{public: A(int x,int y):m1(x),m2(y) { } void disp() { printf("%d,%d\n",m1,m2); }private: int m1,m2;};int main(){ A a(1,2); a.disp(); new(&a)A(3,4); a.disp(); return 0;}