0

它给出了错误:

#include <iostream>
using std::cout;

class stud
{
    int a = 0; // error??

public:
    void display();
};

int main()
{
    // ...
}
4

2 回答 2

0

(原因)

自 C++11 起支持具有默认成员初始值设定项的非静态数据成员。

--

(修复)

如今,许多编译器都支持 C++11。

对于 Visual Studio IDE 用户(如我自己):在项目属性上:C/C++ > 语言 > C++ 语言标准:设置为 C++11 或更高版本。在 Visual Studio 2017 中,基线支持 C++11。

对于 Visual Studio IDE 用户以外的用户,请搜索主题:“如何为您的编译器启用 C++11”。

于 2018-09-01T05:09:11.337 回答
0

从 C++11开始可以做到这一点。

通过默认成员初始化程序,它只是包含在成员声明中的大括号或等号初始化程序,如果成员在成员初始化程序列表中省略,则使用该初始化程序。

class S
{
    int n = 7;
    std::string s{'a', 'b', 'c'};
    S() // copy-initializes n, list-initializes s
    { }
};
于 2018-09-01T05:12:08.680 回答