你能解释(最好引用标准)这段代码是非法的还是什么?
我明白A a = a;永远不应该写在第一个地方,但我正在寻找理论背景.
class A { public: A() :p(new int) { } A(const A& rv) { p = new int(*rv.p); } ~A() { delete p; } private: int *p; }; int main() { A a = a; }