2011-02-18 129 views
1

我已经调用了一个对象的const成员函数。调用const成员函数

我在MainWindow上创建了一个对象,之前在设置大小之后,它调用了get_size()。

调用基类Gtk :: Window的get_size()方法。

它给出错误:'Gtk :: Window'不是'MainWindow'的可访问基础。

主窗口是从的Gtk :: Window类

class MainWindow: Gtk::Window 
{ 

}; 

继承什么能这样做的原因。

回答

9

Inhertance是private默认为阶级。你需要从Gtk::Window公开推导:如果您private字继承

class MainWindow: public Gtk::Window { 
+0

其实我很惊讶他没有在类MainWindow:Gtk :: Window上得到编译错误,我以为你总是必须指定访问类型。 – sashoalm 2011-02-18 14:08:45

3

大概应该是:

class MainWindow: public Gtk::Window 
{ 

}; 
1

(这就是你如何继承,当你不为class指定任何字)从Gtk::Window每一个方法MainWindow成为私有的(即使它是在Gtk::Window中声明为publicprotected)。

如果继承protected字,则每public方法从基类变为protected继承类中的方法。 private方法保持原样。

public继承不会改变任何东西。它是使用struct关键字声明的类的默认继承。

看来你忘了在类声明中使用public