为什么只调用一次构造函数?

时间:2013-06-24 03:34:18

标签: c++ copy-constructor

我已尝试使用代码查找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(),我认为这个过程是这样的:

  1. 调用构造函数B(),打印 B(),返回类型为B临时对象;
  2. 调用复制构造函数 B(const B&),将步骤1中返回的对象作为参数传递,打印 B(const B&amp;),初始化变量{{1 }}。
  3. 但我的代码只输出b,这意味着没有调用B()。有什么问题?

0 个答案:

没有答案