代入ではコピーコンストラクタは呼ばれない、と。
代入は演算子のオーバーロードで操作するのかな?
#include <iostream> using namespace std; class Foo { int i; public: Foo(int i) : i(i) { cout << "constructor: " << i << "\n"; } Foo(const Foo &foo) { cout << "copy constructor: " << i << "<-" << foo.i << "\n"; i = foo.i; } int get_i() { return i; } }; int main() { Foo foo1(1), foo2(2); Foo foo3 = foo1; foo2 = foo1; cout << foo1.get_i() << "\n"; cout << foo2.get_i() << "\n"; cout << foo3.get_i() << "\n"; return 0; }
constructor: 1
constructor: 2
copy constructor: 0<-1
1
1
1