我有一個虛擬方法的類定義。編譯錯誤 - 靜態成員
在編譯我得到的錯誤'MethodType Class::Method'
不類Class
的靜態成員最流行的解決方案,我發現是關鍵字靜態添加到方法定義在頭文件。
但是,該方法被定義爲虛擬。因此,添加靜態關鍵字我將不得不刪除虛擬關鍵字。不幸的是,由於該類繼承父類,因此該方法也被聲明爲虛擬,導致另一個編譯器錯誤,因此無法完成。 (請注意,我使用定義的接口並且無法訪問父類的源代碼)
有沒有人有任何想法?
頭文件
class X : public OtherClass
{
public:
X();
~X();
virtual structType MethodName(ParamType1,ParamType2);
};
然後在CPP文件我有:
structType * X::MethodName(ParamType1 P1, ParamType2 P2)
{
//Implementation here
}
和得到錯誤標記:
'structType* X::MethodName' is not a static member of 'class X'
我們需要看你的班級定義。目前我不知道你在問什麼。 – 2011-05-27 09:02:58
這沒有多大意義。如果您要覆蓋的基本函數是'virtual',則從派生函數中刪除關鍵字'virtual'會導致編譯錯誤;實際上它什麼都不做! – 2011-05-27 09:04:04
你能提供一些代碼嗎?大多數情況下,您可以像靜態方法那樣調用方法,而不是像實例一樣。 – Centro 2011-05-27 09:05:39