我已经调用了一个对象的const成员函数。
我在MainWindow上创建了一个对象,在之前设置大小后称为get_size()。
调用基类Gtk :: Window的get_size()方法。
它给出错误:'Gtk :: Window'不是'MainWindow'的可访问基础。
MainWindow继承自Gtk :: Window类
class MainWindow: Gtk::Window
{
};
这可能是什么原因。
答案 0 :(得分:9)
默认情况下,类的继承为private
。您需要公开地从Gtk::Window
派生:
class MainWindow: public Gtk::Window {
答案 1 :(得分:3)
应该是:
class MainWindow: public Gtk::Window
{
};
答案 2 :(得分:1)
如果您使用private
字继承(这是您在class
未指定任何字时继承的方式),Gtk::Window
中的每个方法都会在MainWindow
中变为私有(即使它在public
中声明为protected
或Gtk::Window
)。
如果继承protected
字,则基类中的每个public
方法都会成为继承类中的protected
方法。 private
方法保持不变。
public
继承不会改变任何东西。它是使用struct
关键字声明的类的默认继承。
您似乎忘记在课堂声明中使用public
。