noob在這裏仍在嘗試模板。試圖寫一個消息處理類模板C++中的類模板中的模板類
template <typename T> class MessageProcessor {
//constructor, destructor defined
//Code using t_ and other functions
foo(void) {
//More code in a perfectly fine method
}
private: T *t_
};
所有定義在頭文件中。我已經建立並測試了我的班級,一切都很好。現在,我想這樣做:
template <typename T> class MessageProcesor {
//Same stuff as before
foo(void) {
//Same code as before in foo, but one new line:
t_->getMessageSender<MessageType>();
}
private: T *t_;
};
不過,此行給了我之前「>」令牌壞表達式類型的錯誤。
我已經添加了必要的頭文件來定義MessageType是什麼。我之前很多時候都使用過這個函數,只是不在這個範圍內。
我懷疑編譯器不喜歡模板函數在未定義的類模板(非特定?)內完全定義(專門化?)的事實。我並不完全理解什麼使得模板成爲「專業」。大多數解釋都集中在「全部」或「部分」的概念上,而不是首先使其專業化的原因。
如果您想查看更多代碼,請致歉。我在工作中沒有互聯網接入,這就是我正在做這件事的地方,所以我必須把所有東西都放到我的精神「便箋簿」中,然後帶回家。
在這裏發佈getMessageSender函數代碼。 – 2009-07-07 07:26:53
食物沒有返回類型,那是你的問題 – 2009-07-07 08:40:24