// 构造函数的分类与调用 #include using namespace std; class B { private: int n; public: // B() { cout << "B()" << endl; } B(int n) { cout << "B(int n)" << endl; this->n = n; } B(const B &other) { cout << "B(B &other)" << endl; this->n = other.n; } public: void showN() { cout << "n = " << n << endl; } }; int main() { B b1 = 20; // 隐式调用 B(int n), B(20), 只创建一个对象 B b2 = B(30); // 显式调用 B(int n) B b3 = b2; // 隐式调用 B(B &other) B &b4 = b3; // 不会创建空间,只是一个别名 B b5(b4); // 显式调用 B(B &other) return 0; }