如何在派生类构造函数中初始化基类成员变量?

阿姆哈桑

我为什么不能这样做?

class A
{
public:
    int a, b;
};

class B : public A
{
    B() : A(), a(0), b(0)
    {
    }

};
电脑

你不能初始化a,并bB因为它们不是成员B它们是的成员A,因此只能对其A进行初始化。您可以将它们公开,然后在中进行分配B,但这不是推荐的选择,因为这会破坏封装。而是在中创建一个构造函数A以允许B(或的任何子类A)对其进行初始化:

class A 
{
protected:
    A(int a, int b) : a(a), b(b) {} // Accessible to derived classes
    // Change "protected" to "public" to allow others to instantiate A.
private:
    int a, b; // Keep these variables private in A
};

class B : public A 
{
public:
    B() : A(0, 0) // Calls A's constructor, initializing a and b in A to 0.
    {
    } 
};

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在派生类中初始化基类staic内联数据成员?

来自分类Dev

在调用基类构造函数之前,初始化派生类成员变量。这是UB吗?

来自分类Dev

C ++-在派生类中静态初始化基类保护的成员变量

来自分类Java

在派生类构造函数(或工厂)中初始化基类的模式

来自分类Dev

为什么派生类的构造函数要在C ++中初始化虚拟基类?

来自分类Dev

从派生类成员初始化基类引用

来自分类Java

派生类中的变量可能尚未初始化(使用构造函数)

来自分类Dev

如何在派生构造函数中初始化从基类继承的向量

来自分类Dev

如何在派生类中存储在基类初始化期间获得的信息?

来自分类Dev

基类变量用派生类初始化

来自分类Dev

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

来自分类Dev

如何在基类构造函数中使用派生类成员

来自分类Dev

无法在派生类的构造函数的初始化中访问受保护的函数

来自分类Dev

如何在Scala中从派生类辅助构造函数调用辅助基类构造函数?

来自分类Dev

如何使用基类的数据成员作为派生类的构造函数?(在 C++ 中)

来自分类Dev

仅重新初始化派生类中的所有成员变量

来自分类Dev

可以通过以下方法在派生类中初始化受保护的基类成员:

来自分类Dev

如何在类中初始化const成员变量?

来自分类Dev

是否可以使用基类构造函数使用派生类将值初始化为基类私有成员?

来自分类Dev

我可以在初始化派生类时构造基类来分配吗?

来自分类Dev

如何在模板派生类中调用模板基类的构造函数?

来自分类Dev

如何在C ++中从基类构造函数调用派生类方法?

来自分类Dev

通过基类构造函数从驱动类模板值初始化基类数组成员变量

来自分类Dev

派生类中来自父类的成员会干扰,具体取决于初始化

来自分类Dev

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

来自分类Dev

派生类不能访问私有成员(尽管构造函数是在基类中定义的)

来自分类Dev

通过使用派生类的静态constexpr数据成员初始化基类的静态constexpr数据成员

来自分类Dev

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

来自分类Dev

派生类中用于空初始化构造函数的constexpr

Related 相关文章

  1. 1

    如何在派生类中初始化基类staic内联数据成员?

  2. 2

    在调用基类构造函数之前,初始化派生类成员变量。这是UB吗?

  3. 3

    C ++-在派生类中静态初始化基类保护的成员变量

  4. 4

    在派生类构造函数(或工厂)中初始化基类的模式

  5. 5

    为什么派生类的构造函数要在C ++中初始化虚拟基类?

  6. 6

    从派生类成员初始化基类引用

  7. 7

    派生类中的变量可能尚未初始化(使用构造函数)

  8. 8

    如何在派生构造函数中初始化从基类继承的向量

  9. 9

    如何在派生类中存储在基类初始化期间获得的信息?

  10. 10

    基类变量用派生类初始化

  11. 11

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

  12. 12

    如何在基类构造函数中使用派生类成员

  13. 13

    无法在派生类的构造函数的初始化中访问受保护的函数

  14. 14

    如何在Scala中从派生类辅助构造函数调用辅助基类构造函数?

  15. 15

    如何使用基类的数据成员作为派生类的构造函数?(在 C++ 中)

  16. 16

    仅重新初始化派生类中的所有成员变量

  17. 17

    可以通过以下方法在派生类中初始化受保护的基类成员:

  18. 18

    如何在类中初始化const成员变量?

  19. 19

    是否可以使用基类构造函数使用派生类将值初始化为基类私有成员?

  20. 20

    我可以在初始化派生类时构造基类来分配吗?

  21. 21

    如何在模板派生类中调用模板基类的构造函数?

  22. 22

    如何在C ++中从基类构造函数调用派生类方法?

  23. 23

    通过基类构造函数从驱动类模板值初始化基类数组成员变量

  24. 24

    派生类中来自父类的成员会干扰,具体取决于初始化

  25. 25

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

  26. 26

    派生类不能访问私有成员(尽管构造函数是在基类中定义的)

  27. 27

    通过使用派生类的静态constexpr数据成员初始化基类的静态constexpr数据成员

  28. 28

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

  29. 29

    派生类中用于空初始化构造函数的constexpr

热门标签

归档