多继承情况下的构造函数
Constructors in case of multi-inheritance
这可能是一个愚蠢的问题,但我是第一次处理多重继承。
单继承是这样定义的:
class Canvas3D : public CanvasBase
{
...
这里Canvas3D继承自CanvasBase,因此base构造函数必须在构造时这样调用:
Canvas3D::Canvas3D(window* parent)
:CanvasBase(parent)
{
...
现在Canvas3D需要继承两个基类:
class Canvas3D : public CanvasBase, public GLCanvas
{
...
当它不提供默认构造函数时,我如何调用GLCanvas的基本构造函数?这些变量不起作用:
Canvas3D::Canvas3D(window* parent)
:CanvasBase(parent)
,GlCanvas(parent)
{
...
Canvas3D::Canvas3D(window* parent)
:CanvasBase(parent)
:GlCanvas(parent)
{
...
Canvas3D
构造函数需要接收参数来构造GLCanvas
部分,并将其传递给GLCanvas
构造函数。
Canvas3D::Canvas3D(window* parent, GLCanvas_Parameters) :
CanvasBase(parent), GlCanvas(GLCanvas_Parameters)
{
//...
}
相关文章:
- 为什么在没有显式默认构造函数的情况下,将另一个结构封装在联合中作为成员的结构不能编译
- 为什么需要复制构造函数,在哪些情况下它们非常有用
- 为什么不调用移动构造函数?(默认情况下只有构造器,没有别的)
- 如何在没有复制构造函数的情况下为地图设置值?
- 在没有默认构造函数的情况下创建的派生对象
- 在双重继承的情况下如何处理非标准构造函数
- 如何在不知道属性具有哪些构造函数的情况下初始化属性?
- 在 C++ 中,默认情况下构造函数为类的数据成员提供的值是多少?
- 如何防止类中的类对象尝试在没有默认构造函数的情况下自动构造自身?
- 为什么在这种情况下调用非常量右值移动构造函数?
- 在没有构造函数的情况下初始化 const c++ 类
- 在不使用默认构造函数的情况下声明 POD 结构时,会实例化什么?
- 父类有 26 个构造函数重载.如何在不复制+粘贴 26 个重载的情况下将一个小任务附加到所有构造器?
- 您可以在不调用构造函数的情况下调用攻击器吗?
- 在不调用构造函数的情况下创建 Vector 元素
- 默认情况下,我如何在不使用继承的情况下使用所有构造函数
- 在不调用其构造函数的情况下创建对象
- 在没有朋友的情况下向私有构造函数授予访问权限
- 构造函数/解构函数情况下的'undefined reference to vtable for'
- c#和c++中虚函数情况下编译器行为的差异.这是我在一次采访中被问到的问题