-1
四處錯誤,但不理解的行爲:「只有非靜態成員函數可以是虛擬的」
class A {
virtual void foo() = 0;
virtual int bar();
}
在這裏,我得到錯誤「唯一的非靜態成員函數可以是虛擬的」 我給實施爲bar();
。
四處錯誤,但不理解的行爲:「只有非靜態成員函數可以是虛擬的」
class A {
virtual void foo() = 0;
virtual int bar();
}
在這裏,我得到錯誤「唯一的非靜態成員函數可以是虛擬的」 我給實施爲bar();
。
錯誤消息是有誤導性的,問題是bar
沒有返回類型,這是非法的。
靜態成員在類的所有實例之間共享(靜態),而虛擬函數則暴露動態行爲並允許根據對象類型執行不同的執行。所以擁有靜態虛擬功能是沒有意義的。
除了你提供的代碼沒有靜態功能,所以請在這裏發佈完整版。
輸入錯誤,返回值爲int – Sijith
@Sijith所以你的代碼是'virtual int bar();'? – 0x499602D2
@Sijith錯字是'virutal'而不是'virtual' .... –