ysa*_*sap 0 c++ methods constructor class
如果我有以下课程:
class A {
private:
int *x;
public:
A() { x = new int; *(A::x) = 0; }
A(const int *y) { x = new int; *(A::x) = *y; }
~A() { delete x; }
void operator = (const int *y) { A(y); }
};
int main() {
A a;
int y = 3;
a = &y;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我希望赋值语句调用=方法,而方法又x通过调用相应的构造函数来设置成员.但是,似乎在赋值之后,值x仍然NULL是,y并且未分配值.
那么,从一个方法调用构造函数是一个定义的操作吗?如果是这样,我的代码中会错过什么?使用调试器我验证了实际上正在调用构造函数,只是一旦流从构造函数返回=方法,就不会保留复制的值.
| 归档时间: |
|
| 查看次数: |
133 次 |
| 最近记录: |