這段代碼有什麼問題? gcc 4.6.1抱怨「'foo'沒有在此範圍內聲明」in baz()。如果我轉換代碼以使其中一個模板只是一個普通類,問題就會消失。C++類模板繼承難題
struct Foo {
char foo;
};
template<int N>
struct Bar : public Foo
{
Bar() { foo; }
};
template<int N>
struct Baz : public Bar<N>
{
void baz() { foo; }
};
int main() {
Baz<10> f;
return 0;
}
我不明白你在做什麼 - Bar(){foo;}什麼是foo? – badmaash
這被稱爲從屬名稱。請參閱http://womble.decadent.org.uk/c++/template-faq.html#base-lookup – Suma
可能的重複[爲什麼不這C++模板代碼編譯?](http://stackoverflow.com/questions/1364837/why-doesnt-this-c-template-code-compile) – Suma