6
如果我使用繼承鏈,如下面的例子我可以使用從最深基礎瓦爾沒有任何問題:如果我做同樣的遞歸可變參數遞歸繼承與可變參數模板和遺傳參數問題
class A { public: int x; };
class B : public A { };
class C: public B { public: void Do() { cout << x << endl; } };
模板類我無法訪問我的變量。任何想法如何訪問變量和爲什麼我看不到我的變量?
template <class ...Parms>
class Example;
template <class Head, class ...Parms>
class Example<Head, Parms...>: public Example<Parms...>
{
};
template <>
class Example<>
{
public:
int x;
};
template <class ...Parms>
class Last: public Example<Parms...>
{
void Do() { cout << x << endl; }
};
在類的任何實例被實例化之前編譯失敗!
好吧,this-> x的工作,但我必須說:我不明白訪問x和this-> x之間的差異數據成員。任何人都可以解釋*爲什麼會發生? – Klaus
@Klaus我編輯了答案以提供解釋。 – Angew