gpt4 book ai didi

c++ - 虚函数必须公开吗?

转载 作者:太空狗 更新时间:2023-10-29 23:29:09 27 4
gpt4 key购买 nike

这是我的基类工作的方式:

class AguiWidgetBase
{
//variables
AguiDockingEnum dockingStyle;
std::string text;
AguiRectangle clientRectangle;
AguiColor tintColor;
AguiColor fontColor;
std::map<int,int,CmpIntInt> children;

//private methods
void zeroMemory();
virtual void onPaint();
virtual void onAddChildControl(AguiWidgetBase *control);
virtual void onTintColorChanged(AguiColor color);
virtual void onDockingStyleChanged(AguiDockingEnum style);
virtual void onTextChanged(std::string text);
virtual void onThemeChanged(const AguiTheme &theme);
void (*onPaintCallback)(AguiRectangle clientRect);
void (*onTintColorChangedCallback)();
void (*onDockingStyleChangedCallback)();
void (*onTextChangedCallback)();
void (*onThemeChangedCallback)();

protected:
AguiWidgetBase *parentWidget;
public:
AguiWidgetBase(void);
~AguiWidgetBase(void);

void addChildControl(AguiWidgetBase *control);
void removeChildControl(AguiWidgetBase *control);
AguiWidgetBase* getParent();
void paint();
void setTintColor(AguiColor color);
AguiColor getTintColor();
void setDockingStyle(AguiDockingEnum style);
AguiDockingEnum getDockingStyle();
void setText(std::string text);
std::string getText();
void SetTheme( const AguiTheme &theme);
};

其中一些是这样工作的。有一个常规的不可重写函数,它调用虚函数和函数指针(如果它不为 NULL)。

当我创建派生类时,我的虚函数是否能够再次进入私有(private)范围,还是它们必须是公共(public)的?

由于我的设计,我想避免将它们公开。谢谢

最佳答案

虚函数可以具有publicprotectedprivate 访问权限。

通过 C++ FAQ 讨论它们.

关于c++ - 虚函数必须公开吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3887061/

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