从具有固定数据的类继承的类

时间:2013-08-17 22:52:12

标签: c++ directx-9

我正在为C ++中的directx开发GUI。 我的控件有一个类:

class cControl;

我的窗户的课程:

class cWindow : public cControl

我想要做的是为一种特殊的窗口(颜色选择器)编写一个类。

class cColorPicker : public cWindow

colorpicker类的构造函数只调用cControl函数。 要在每个窗口的gui例程中进行设置,我使用以下代码:

for each( cWindow* pWindow in m_vWindows )
    // stuff

我注意到调试的是位置,宽度,高度以及我在colorpicker构造函数中设置的所有内容都为null。

编辑: 我想要做的是有一个特殊的窗口,其中包含一个构造函数,用于设置(例如)窗口的宽度,高度等。 这会起作用吗?

cColorPicker::cColorPicker( int x, int y )
{
    cWindow::cWIndow( x, y, ... )
}

EDIT2: 第二个问题: 我必须从cWindow类(一个向窗口添加控件的函数)中调用一个函数,但它似乎也给出了问题,我想我必须在cColorPicker的构造函数中完成它。

1 个答案:

答案 0 :(得分:1)

您应该使用member initializer list使用参数

初始化基础对象
cColorPicker::cColorPicker(int x, int y)
: cWIndow( x, y, ... ), width(42),height(42) 
{
}

编辑:    如果要向基础构造函数添加额外参数,应将其从cColorPick构造函数传递给它的基础:

cColorPicker::cColorPicker(int x, int y, cControl* pControl)
: cWIndow( x, y, pControl, ...), width(42),height(42) 
{
}

// edit or create a new cWindow constructor to accept CControl* parameter
cWIndow::cWIndow(int x, int y, cControl* pControl)
:width(x), height(y), m_vControls(pControl)
{
}