gpt4 book ai didi

c++ - 为什么在构造函数之外不允许类成员的初始化?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:30:59 24 4
gpt4 key购买 nike

换句话说,为什么编译器会提示这样的事情:

class Integer {
int i = 3;
};

虽然这是一个非常愚蠢的例子,但在很多情况下,类的成员可以默认初始化为某个值(例如,一些内部计数器总是默认初始化为零)。禁止在类构造函数之外进行这些默认初始化的原因是什么?

最佳答案

因为有构造函数。

class InTeGeR
{
Public:
int i;
InTeGeR()
{
i=3;
}
}

存在外构造函数初始化:

class InTeGeR
{
Public:
int i=3;
InTeGeR()
{
i=5;
}
//now, i could be 3 or 5. Which one?
int j=i+1;
//is j 4 or 6? Very confusing
}

关于c++ - 为什么在构造函数之外不允许类成员的初始化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12098109/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com