C++レプリケーション構築オペレータ呼び出し
910 ワード
主に説明を記録するためです.
class A;
A a;
A b = a;//これはレプリケーションコンストラクション関数を呼び出しますか?それとも、まず構築してから、割り当てオペレータを呼び出しますか?結果は前者です.
テストコード:
class A;
A a;
A b = a;//これはレプリケーションコンストラクション関数を呼び出しますか?それとも、まず構築してから、割り当てオペレータを呼び出しますか?結果は前者です.
テストコード:
#include
#include
class A {
public:
A() {
printf("%s
", "A constructor");
}
A(const A &a) {
this->data_ = a.data_;
printf("%s
", "A copy constructor");
}
A& operator=(const A &a) {
this->data_ = a.data_;
printf("%s
", "A operator=");
}
private:
int data_;
};
int main(int argc, char **argv) {
A a; // A constructor
printf("-------------------
");
A b = a; // A copy constructor
printf("-------------------
");
A c; // A constructor
c = a; // A operator=
printf("-------------------
");
return 0;
}