我试图实现一个QToolBar子类,其子项由模型指定,而不是单独添加。这意味着添加/删除项目(工具栏按钮)的功能选择(如addAction)不应公开访问。C++继承和隐藏不需要的继承函数
什么是从这个对象继承的最好方法,但选择的功能私人?
我目前最好的办法是这样做:
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]
};
因此,重新定义,不应该是公共的所有功能,为私有。
这是一个好主意,还是有更好的方法?
+1为唯一答案是完整的。 'private'继承*和''using'声明来公开非私有函数。 – rubenvb 2010-12-19 19:03:04