C++是很危险的:第一章 构造函数:第一节

《C++是很危险的》中的代码全部来自网络及各种C++相关的书籍。 目的不是为了谴责C++, 而是希望大家注意C++中的某些细节。 避免在实际工作中犯错误。

以下代码会输出什么?

#include <iostream>

using namespace std;

class bar
{
public:
    bar(int a)
    {
        data=a;
        bar();
    }

    bar()
    {
        data=4;
    }

    int getData()const
    {
        return data;
    }

private:
    int data;
};

int main()
{
    bar b(3);
    cout<<b.getData()<<endl;
    return 0;
}

答案

答案是3。

解释

bar()只是生成一个临时的bar对象, 然后就立即析构了。 没有对当前对象造成任何影响。

目录啦啦啦