C++ 两种类型的构造函数/哪一种更好?

C++ 两种类型的构造函数/哪一种更好?,c++,C++,假设同一类Simple有两个版本: 一, 二, 编译、运行和给出相同的结果。应该使用哪一种,它们之间有什么内在区别?谢谢。最好使用初始值设定项列表来初始化成员变量,这就是它的用途。在复杂对象的情况下,由于您可以跳过默认初始化,因此也可能有效率优势。如果成员没有默认构造函数,或者是const或reference,那么您将别无选择,只能将其放入初始值设定项列表中 我更喜欢将函数体保持为单独的行,以防需要在其中一行上设置断点 #include <iostream> using names

假设同一类Simple有两个版本:

一,

二,


编译、运行和给出相同的结果。应该使用哪一种,它们之间有什么内在区别?谢谢。

最好使用初始值设定项列表来初始化成员变量,这就是它的用途。在复杂对象的情况下,由于您可以跳过默认初始化,因此也可能有效率优势。如果成员没有默认构造函数,或者是const或reference,那么您将别无选择,只能将其放入初始值设定项列表中

我更喜欢将函数体保持为单独的行,以防需要在其中一行上设置断点

#include <iostream>

using namespace std;

class Simple
{
public:
    Simple() { }
    Simple(int c)
    { 
        data = c;
        cout << data << endl; 
    }
private:
    int data;
};

int main()
{
    Simple obj(3);
    return 0;
}
#include <iostream>

using namespace std;

class Simple
{
public:
    Simple() { }
    Simple(int c) : data(c) { cout << data << endl; }
private:
    int data;
};

int main()
{
    Simple obj(3);
    return 0;
}