MyClass a=b;和MyClass a(b)效果是一样的惊奇的发现,如果比较完善的类,都定义了operator=(const MyClass&)以及Myclass::MyClass(const MyClass&)在声明后面直接赋值的,不会调用operator=,而是MyClass(const MyClass&)我又孤陋寡闻了[解决办法]没错,因为a都不存在,所以是构造不是赋值[解决办法]定义这两个,就可以有效防止 浅拷贝嘛.