调用基类构造函数与初始化子类中的成员变量

nSv23

Parent班是一个抽象类。这里_isDone_probprotected变量Parent类,由继承Child

使用之间有什么区别:

Child::Child(int _classType) : Parent(false, 1.0f)用于初始化Parent的变量

Child::Child(int _classType) 
{
    _isDone = false;
    _prob = 1.0f;
}

我觉得使用第二个而不是第一个更容易。任何理由使用第一个。

for_stack

简短的回答:第一个是初始化,第二个是赋值

第一个初始化_isDone_probParent的构造。但是,当您使用第二个时,_isDone_prob使用Parent的默认构造函数进行了初始化,然后在Child构造函数的函数体中为其分配了新值

第一个更好是因为以下原因:

  1. 如果Parent没有默认构造函数,则第二个不能工作。
  2. 第一个效率更高,尤其是当数据成员是“非常大”的对象时,其默认构造函数非常昂贵。由于第一个调用数据成员的默认构造函数,然后调用operator=以分配新值,而第二个仅调用适当的构造函数。默认构造函数是冗余的。
  3. 就我个人而言,我认为Parent直接访问的数据成员不是一个好主意Parent之间的耦合增加Child

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Swift中初始化子类时调用父构造函数

来自分类Dev

用多个构造函数调用初始化成员变量

来自分类Dev

为什么基类的成员不保留构造函数中首次初始化的值?

来自分类Dev

如何在类模板的构造函数中初始化向量成员变量

来自分类Dev

使用Parent构造函数初始化子类

来自分类Dev

使用Parent构造函数初始化子类

来自分类Dev

从超类初始化子类的类实例变量

来自分类Dev

从超类初始化子类的类实例变量

来自分类Dev

用基类对象C ++初始化子类?

来自分类Dev

如何避免在基类初始化器中调用默认构造函数?

来自分类Dev

初始化子类时可访问超类的变量

来自分类Dev

如何从子类的构造函数初始化父类的私有成员

来自分类Dev

如何停止在子类中调用基类的构造函数

来自分类Dev

Java构造函数中类变量的初始化

来自分类Dev

在构造函数中初始化数组类变量

来自分类Dev

在没有构造函数的类中初始化变量

来自分类Dev

Java构造函数中类变量的初始化

来自分类Dev

在类的构造函数中初始化ifstream变量

来自分类Dev

在类声明或构造函数初始化器列表中初始化简单成员

来自分类Dev

C++在初始化类实例时隐式调用类成员的构造函数

来自分类Dev

我可以使用在类构造函数中初始化的ofstream类型的成员变量吗?

来自分类Dev

如何比类中的成员变量更早地调用构造函数?

来自分类Dev

初始化子类时基类如何初始化

来自分类Dev

将参数传递给基类构造函数时成员的初始化

来自分类Dev

在类本身中初始化 TypeScript 变量与在构造函数中初始化的区别

来自分类Dev

用父类初始化子类

来自分类Dev

为什么我的类构造函数不初始化其成员变量?

来自分类Dev

自动初始化父类和子类中的成员变量

来自分类Dev

从子类的构造函数体中调用基类的构造函数

Related 相关文章

  1. 1

    在Swift中初始化子类时调用父构造函数

  2. 2

    用多个构造函数调用初始化成员变量

  3. 3

    为什么基类的成员不保留构造函数中首次初始化的值?

  4. 4

    如何在类模板的构造函数中初始化向量成员变量

  5. 5

    使用Parent构造函数初始化子类

  6. 6

    使用Parent构造函数初始化子类

  7. 7

    从超类初始化子类的类实例变量

  8. 8

    从超类初始化子类的类实例变量

  9. 9

    用基类对象C ++初始化子类?

  10. 10

    如何避免在基类初始化器中调用默认构造函数?

  11. 11

    初始化子类时可访问超类的变量

  12. 12

    如何从子类的构造函数初始化父类的私有成员

  13. 13

    如何停止在子类中调用基类的构造函数

  14. 14

    Java构造函数中类变量的初始化

  15. 15

    在构造函数中初始化数组类变量

  16. 16

    在没有构造函数的类中初始化变量

  17. 17

    Java构造函数中类变量的初始化

  18. 18

    在类的构造函数中初始化ifstream变量

  19. 19

    在类声明或构造函数初始化器列表中初始化简单成员

  20. 20

    C++在初始化类实例时隐式调用类成员的构造函数

  21. 21

    我可以使用在类构造函数中初始化的ofstream类型的成员变量吗?

  22. 22

    如何比类中的成员变量更早地调用构造函数?

  23. 23

    初始化子类时基类如何初始化

  24. 24

    将参数传递给基类构造函数时成员的初始化

  25. 25

    在类本身中初始化 TypeScript 变量与在构造函数中初始化的区别

  26. 26

    用父类初始化子类

  27. 27

    为什么我的类构造函数不初始化其成员变量?

  28. 28

    自动初始化父类和子类中的成员变量

  29. 29

    从子类的构造函数体中调用基类的构造函数

热门标签

归档