B(const B&)
の代わりにB(B&)
ctorが呼び出されたのはなぜですか?オブジェクトb1
の構成では、以下のコードで最初のコピーコンストラクタが呼び出されるのはなぜですか?
#include <iostream>
using namespace std;
struct B
{
int i;
B() : i(2) { }
B(B& x) : i(x.i) { cout << "Copy constructor B(B&), i = " << i << endl; }
B(const B& x) : i(x.i) { cout << "Copy constructor B(const B&), i = " << i << endl; }
};
int main()
{
B b;
B b1(b);
}
bはconstではないためですか? –