我们在定义了一个c++类后, 如果我们自己没有写拷贝构造函数 , 那么系统就会系统一个默认的拷贝构造函数 , 但如果我们类中存在指针等地址变量时 , 就会发生意想不到的结构:
代码1、调用系统拷贝构造函数:
#include输出的结果是:#include using namespace std; class point { public: point() {} point(string *c) { z = c;} void set2(); string get(); private: string *z; }; string point::get() { return z[0]; } void point::set2() { z[0] = "xy"; } int main() { string xy[3] = {"wef" , "efe" , "wre"}; point a(xy); point b(a); a.set2(); cout << a.get() << endl; cout << b.get() << endl; return 0; }
< http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+tPrC6zKhorX308PX1Lao0uW1xL+9sbS5udTsuq/K/aO6I2luY2x1ZGUgPGlvc3RyZWFtPjxicj4KPHByZSBjbGFzcz0="brush:java;">#include