我已尝试使用代码查找copy constructor
的工作原理。这是我的代码:
#include <iostream>
using namespace std;
class B{
public:
B(){
cout << "B()\n";
}
B(const B& b){
cout << "B(const B&)\n";
}
~B(){
cout << "~B()\n";
}
};
int main(){
B b = B();
return 0;
}
对于代码B b = B()
,我认为这个过程是这样的:
B()
,打印 B(),返回类型为B
的临时对象; B(const B&)
,将步骤1中返回的对象作为参数传递,打印 B(const B&amp;),初始化变量{{1 }}。但我的代码只输出b
,这意味着没有调用B()
。有什么问题?