作者DreamZero (尋夢者)
看板C_and_CPP
標題[問題] 樣板類別的繼承
時間Fri Nov 18 23:34:13 2005
有以下兩個類別
template<class T> class Base {
protected:
T info;
public:
.....
};
template<class T> class Derived : public Base<T> {
public:
.....
};
其中 Derived 類別中有函數會存取到 info
在 compile 完後
compiler 告知 info is not in the scope
但是把 Derived 類別改成像
class Derived : public Base<char> {
public:
.....
};
卻不會出現這個問題
請問一下各位大大這是什麼原因呢?
要怎麼修正才能讓上面的 Derived 類別可以存取到 info 呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.132.241.102
※ 編輯: DreamZero 來自: 220.132.241.102 (11/18 23:35)
推 firose:this->info 11/19 00:26
推 DreamZero:可以耶 感謝樓上的大大 ^^ 11/19 00:30
→ DreamZero:可以請教一下為什麼要用this呢? 11/19 00:31
→ DreamZero:看起來應該是沒有覆蓋過info呀 = =? 11/19 00:31
→ firose:我忘了. 記得以前在書上看過原因 = = 11/19 00:51
推 DreamZero:可以請教一下是哪一本書嗎? ^^" 11/19 01:00
→ firose:不記得,可能是 C++ Templates: The Complete Guide。 11/19 01:06
→ firose:明確取值也可以 Base<T>::info 11/19 01:34
推 DreamZero:我再去找書看看 謝謝囉 ^^ 11/19 01:38
推 khoguan:那本書確實有詳盡說明。侯捷老師中譯"C++ Templates全覽" 11/19 10:43