主要是为了记录说明 :
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++ 复制构造和赋值操作符调用,布布扣,bubuko.com
原文地址:http://blog.csdn.net/huangkq1989/article/details/25712079