今天过代码审查,其中有一处关于拷贝构造函数的问题,大概意思是其中一处指针可能会多次释放。请教领导,领导给讲解了一下拷贝构造函数。但自己听的云里雾里的。然后自己动手写了个demo。终于理解了。
先说结论:
拷贝构造用在类中有指针的情况。要是类中没有指针都是变量,其实编译器默认弄的拷贝构造就够了。
先上代码:
#includeusing namespace std; class A { public: A(int a2) :_a(a2) { int b = 20; *_b = 20; } //A(const A& a) //{ // cout << "copy fun" << endl; // int b = 30; // *_b = b; //} ~A() { cout << "--------delect --------" << endl; if (_b != nullptr) { cout << "B addr = " << this->_b < 欢迎分享,转载请注明来源:内存溢出
评论列表(0条)