多继承情况下的构造函数

Constructors in case of multi-inheritance

本文关键字:构造函数 情况下 继承      更新时间:2023-10-16

这可能是一个愚蠢的问题,但我是第一次处理多重继承。

单继承是这样定义的:

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)
{
    //...
}
相关文章: