比方說,我有這樣的例子模板:如何使模板中的純虛擬方法適應從其繼承的類?
template<class T>
class Wrapper
{
virtual T* ReturnPtr() = 0;
};
然後我從它繼承:
class Buffer; //some class
class BufferWrapper : public Wrapper<Buffer>
{
virtual Buffer* ReturnPtr(); //<< (1.)
}
- 這是做正確的方式嗎?當我這樣寫它時,它 給我沒有intellisense錯誤,但是一旦我在某處寫了ReturnPtr() ,它告訴我「該對象具有與成員函數兼容的不是 的類型限定符」。
- 這是否意味着使用這種虛擬方法是不可能的?
從'BufferWrapper'中的聲明中刪除'virtual'。 – 2013-02-10 19:54:57
不會改變它:(可能這樣做是非法的嗎? – 2013-02-10 19:57:39
你可以顯示你在哪裏調用'ReturnPtr'嗎? – 2013-02-10 19:58:55