小编qtg*_*irl的帖子

C++继承,并隐藏不需要的继承函数

我正在尝试实现一个QToolBar子类,它的项目由模型指定,而不是单独添加.这意味着选择添加/删除项目(工具栏按钮)的功能,例如addAction不应公开访问.

从这个对象继承的最佳方法是什么,但是选择私有函数?

我目前最好的想法是这样做:

class ToolbarView : public QToolBar
{
    Q_OBJECT
public:
    explicit ToolbarView(QWidget *parent = 0);

signals:

public slots:

private:

    void addAction (QAction *action) {Q_UNUSED(action)};
    QAction* addAction (const QString &text) {return QToolBar::addAction(text) ;}
    ...
    QAction* addSeparator() {QToolBar::addSeparator();}
    ... [list of about 10 of these]

};
Run Code Online (Sandbox Code Playgroud)

因此,将所有不应公开的功能重新定义为私有.

这是一个好主意,还是有更好的方法?

c++ inheritance

1
推荐指数
1
解决办法
1588
查看次数

标签 统计

c++ ×1

inheritance ×1