在创建派生类对象时将参数传递给基类构造函数

新手上路,请多包涵

考虑两个类 AB

 class A
{
public:
    A(int);
    ~A();
};

class B : public A
{
public:
    B(int);
    ~B();
};

int main()
{
    A* aobj;
    B* bobj = new B(5);
}

现在类 B 继承自 A

我想创建一个 B 的对象。我知道创建派生类对象也会调用基类构造函数,但这是没有任何参数的默认构造函数。

我想要的是 B 获取参数(比如 5),并将其传递给 A 的构造函数。请显示一些代码来演示这个概念。

原文由 CodeCrusader 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 609
2 个回答

使用基成员初始化:

 class B : public A
{
public:
    B(int a) : A(a)
    {
    }
    ~B();
};

原文由 Bathsheba 发布,翻译遵循 CC BY-SA 3.0 许可协议

B::B(int x):A(x)
{
    //Body of B constructor
}

原文由 SomeWittyUsername 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题