[問題] 繼承 class template,看不到data member
剛剛發現我有觀念不清楚的地方,請教一下各位前輩
下面左右兩邊的差異,只在於 X 是不是 template
不知道為什麼,左邊那個版本,編譯器跟我說 Y 裡面 n undeclared 無法存取
但是只要把 template 拿掉,就完全正常,是我漏掉規則了嗎?多謝。
template <typename T> ∣
class X { | class X {
protected: | protected:
int n; | int n;
}; | };
|
template <typename T> |
class Y : public X<T> { | class Y : public X {
void f() { n; } undeclared | void f() { n; } ok
} | }
--
To iterate is human, to recurse, divine.
遞迴只應天上有, 凡人該當用迴圈. L. Peter Deutsch
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 182.235.89.169
※ 編輯: yoco315 來自: 182.235.89.169 (03/01 09:23)
推
03/01 09:36, , 1F
03/01 09:36, 1F
→
03/01 09:36, , 2F
03/01 09:36, 2F
推
03/01 09:42, , 3F
03/01 09:42, 3F
→
03/01 09:43, , 4F
03/01 09:43, 4F
→
03/01 09:43, , 5F
03/01 09:43, 5F
→
03/01 09:44, , 6F
03/01 09:44, 6F
→
03/01 09:46, , 7F
03/01 09:46, 7F
推
03/01 09:46, , 8F
03/01 09:46, 8F
→
03/01 09:46, , 9F
03/01 09:46, 9F
→
03/01 09:47, , 10F
03/01 09:47, 10F
推
03/01 09:49, , 11F
03/01 09:49, 11F
推
03/01 10:12, , 12F
03/01 10:12, 12F
推
03/01 10:42, , 13F
03/01 10:42, 13F
→
03/01 10:44, , 14F
03/01 10:44, 14F
推
03/01 10:54, , 15F
03/01 10:54, 15F
→
03/01 11:11, , 16F
03/01 11:11, 16F
推
03/01 12:45, , 17F
03/01 12:45, 17F
→
03/01 13:42, , 18F
03/01 13:42, 18F
→
03/01 18:18, , 19F
03/01 18:18, 19F
→
03/02 01:11, , 20F
03/02 01:11, 20F
※ 編輯: yoco315 來自: 182.235.89.169 (03/02 01:11)
推
03/02 03:50, , 21F
03/02 03:50, 21F
→
03/02 03:51, , 22F
03/02 03:51, 22F
→
03/02 04:52, , 23F
03/02 04:52, 23F
→
03/02 04:52, , 24F
03/02 04:52, 24F
→
03/02 10:15, , 25F
03/02 10:15, 25F
推
03/02 18:59, , 26F
03/02 18:59, 26F
→
03/02 23:26, , 27F
03/02 23:26, 27F