2009-10-22 124 views
1

TextLayoutTransition有什麼問題?函數指針可以不聲明爲虛擬嗎?函數定義不聲明參數

LCDWrapper.h:23: error: function definition does not declare parameters 

這是班級。

class LCDInterface { 
    public: 

    // Slots 
    virtual void TextSetSpecialChars() = 0; 
    virtual void LayoutChangeBefore() = 0; 
    virtual void LayoutChangeAfter() = 0; 
    virtual void TextSpecialCharChanged(unsigned int i) = 0; 
    virtual void ChangeLayout() = 0; 
    virtual void (*TextLayoutTransition)(Generic<LCDText> *v){}; // line 23 
    virtual void TransitionFinished() = 0; 
}; 

編輯:稍有關係,並與Qt相關,可以將指針函數聲明爲插槽/信號?

回答

4

不,你不能..把虛擬放在一個函數指針上是沒有意義的。你不能重寫一個變量。

4

功能指針是數據。數據成員不能是虛擬的。他們不能像你的例子那樣通過{}定義「身體」。你想用這個做什麼?

class myClass 
{ 
    public: 
     get_a { return a; }; // <-- missing() !!! 
    private: 
     int a; 
}; 

的(明顯),問題是方法get_a後缺乏()

0

雖然你有下面的代碼時,你得到同樣的錯誤信息也沒有相關的示例中的問題。

希望能幫助人們在閱讀題目標題時遵循鏈接。