gpt4 book ai didi

c++ - 从具有固定数据的类继承的类

转载 作者:行者123 更新时间:2023-11-28 07:28:22 25 4
gpt4 key购买 nike

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

class cControl;

我的窗口类:

class cWindow : public cControl

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

class cColorPicker : public cWindow

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

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

我在调试时注意到,位置、宽度、高度以及我在颜色选择器构造函数中设置的所有内容都为空。

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

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

编辑2:第二个问题:我必须从 cWindow 类调用一个函数(一个将控件添加到窗口的函数),但它似乎也有问题,我想我必须在 cColorPicker 的构造函数中进行。

最佳答案

你应该使用 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)
{
}

关于c++ - 从具有固定数据的类继承的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18294044/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com