2013-05-07 60 views
-4
class Test { 
public: 
    int xyz=10; 
}; 

为什么C++编译失败?为什么C++中的代码示例(in-class initial)的编译失败?

+2

在构造函数中初始化它 – Freak 2013-05-07 03:50:15

+2

未来,如果某些东西无法编译,你可能还想包含编译器给你的错误。 – Kitsune 2013-05-07 03:51:14

+0

除了Kitsune的建议,除非你使用了编译器给你的错误信息,否则别问我们什么。错误消息通常在文档中进一步解释。如果你刚刚复制/粘贴到谷歌我相信你会遇到答案比问这个问题要快得多。避免产生反作用,避免因无谓的冗余而使互联网瘫痪,并将我们全部从关节炎中拯救出来。这与您作为软件开发人员的角色类似,对吗? – Sebivor 2013-05-07 03:56:56

回答

1

它不是一个静态成员,以便初始化它在constructor.Non静态成员不能初始化没有构造
see this有关静态和非staic数据

+0

这不再是真的,C++ 11允许在类定义中初始化非静态数据成员。 – Praetorian 2013-05-07 04:02:31

+0

是真的,但这只显示错误,如果有人不使用C++ 11.So在这里,如果他得到的错误,这意味着他没有使用C++ 11 – Despicable 2013-05-07 04:05:17

+0

引用OP,代码*编译失败在c + + *。我们都不知道为什么它编译失败:)。但是你可能正确的是,OP使用的是不支持该功能的编译器。 – Praetorian 2013-05-07 04:09:10

2

这是一个在C +新功能的初始化进一步的细节+11。编译你的代码-std=c++11