主要是为了记录说明 :
class A;
A a;
A b = a; //这个是调用复制构造函数呢?还是先构造,再调用赋值操作符? 结果是前者。
测试代码:
#include <stdio.h> #include <stdlib.h> class A { public: A() { printf("%s\n", "A constructor"); } A(const A &a) { this->data_ = a.data_; printf("%s\n", "A copy constructor"); } A& operator=(const A &a) { this->data_ = a.data_; printf("%s\n", "A operator="); } private: int data_; }; int main(int argc, char **argv) { A a; // A constructor printf("-------------------\n"); A b = a; // A copy constructor printf("-------------------\n"); A c; // A constructor c = a; // A operator= printf("-------------------\n"); return 0; }
C++ 复制构造和赋值操作符调用
时间: 2024-11-05 21:41:09