2011-02-18 144 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