gpt4 book ai didi

c++ - 如果显式定义了构造函数,是否必须初始化类成员?

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

我的大学课本上说:

When a constructor is declared for a class, initialization of the class objects becomes mandatory.

链接到 specific page of the book.

我们可以声明什么都不做的构造函数,因此初始化肯定不是强制性的,是吗?

如果不是,作者的意思是在风格上如果我们显式声明构造函数,我们应该初始化类成员,也就是说,它是作为规则还是指南?

最佳答案

如果出现以下情况,我们必须在构造函数中初始化成员:

  1. 成员没有默认构造函数。
  2. 成员是 reference/const-reference。
  3. 成员是常量。 (感谢 Mr.Anubis)

如果我们不希望出现任何奇怪的行为,则应该初始化成员:

  1. 成员是指针
  2. 成员是标准的pod类型

关于c++ - 如果显式定义了构造函数,是否必须初始化类成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12075781/

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