C++:newbie初始化列表问题

jbu*_*jbu 3 c++ list initializer

新手在这里.我在看公司代码.

似乎A类中没有成员变量但是在A的构造函数中它初始化了一个对象B,即使类A不包含任何类型B的成员变量(或任何成员变量!).

我想我甚至不能理解问题......所以这里发生了什么!?我的直觉是你甚至在尝试初始化它之前需要一个变量.如何在没有对象的情况下初始化对象有可能(或者有什么用呢)?

.H:

class A: public B
{
public:
     A(bool r = true);
     virtual ~A;

private:
}
Run Code Online (Sandbox Code Playgroud)

的.cpp:

A::A(bool r) : B(r ? B::someEnumeration : B::anotherEnumeration)
{
}

A::~A()
{
}
Run Code Online (Sandbox Code Playgroud)

请帮忙.

谢谢,jbu

luk*_*uke 9

A(公开)继承自类B:

class A: public B
Run Code Online (Sandbox Code Playgroud)

使用参数初始化基类的唯一方法是通过初始化列表.

  • 相反,*public*继承被认为是"is-a"关系. (2认同)