Почему B(B&)
ctor называется, а не B(const B&)
, при строительстве объекта 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? –