精華區beta C_and_CPP 關於我們 聯絡資訊
有以下兩個類別 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