2
當試圖聲明一個抽象類時,我似乎無法使用模板化函數。這是爲什麼,我該如何處理?這是我的示例頭文件。從同一行虛擬數據聲明不允許
// Foo.h
#include "Bar.h"
#include "Baz.h"
class Foo
{
public:
Foo();
virtual Bar<Baz> *getBaz() const = 0;
//snip
};
其它編譯器錯誤包括
syntax error: missing ';' before '<'
成員函數模板不能聲明爲虛擬。也就是說,你的類沒有成員函數模板。假設'Bar'是一個類模板,'Baz'是一個類型,這個代碼沒有任何問題。 – 2011-03-26 19:58:14
「Bar.h」和「Baz.h」中的內容?你有通告嗎? – GManNickG 2011-03-26 19:58:16
所以如果我想要所有的繼承類來實現這個成員函數,我該如何去做呢?它需要被聲明爲虛擬的,不是? – vapo 2011-03-26 20:09:33