gpt4 book ai didi

c++ - 为什么 const 成员必须在构造函数初始化器中而不是在其主体中初始化?

转载 作者:IT老高 更新时间:2023-10-28 12:14:21 36 4
gpt4 key购买 nike

为什么声明为 const 的类成员必须在构造函数初始化器列表中初始化,而不是在构造函数体中?

两者有什么区别?

最佳答案

在 C++ 中,当执行进入构造函数的主体时,对象被认为已完全初始化。

你说:

"i wanted to know why const must be intialized in constructor initializer list rather than in it's body ?."

您缺少的是 initialisation 发生在初始化列表中,而 assignment 发生在构造函数的主体中。逻辑步骤:

1) 一个 const 对象只能被初始化。

2) 一个对象的所有成员都在初始化列表中初始化。即使您没有在此处显式初始化它们,编译器也会很乐意为您这样做:-)

3) 因此,将 1) 和 2) 放在一起,const 成员只能在初始化时分配一个值,这发生在初始化列表期间。

关于c++ - 为什么 const 成员必须在构造函数初始化器中而不是在其主体中初始化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/355258/

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