【发布时间】:2012-08-15 11:16:07
【问题描述】:
#include <vector>
#include <iostream>
template <class T>
class Base
{
protected:
std::vector<T> data_;
};
template <class T>
class Derived : public Base<T>
{
public:
void clear()
{
data_.clear();
}
};
int main(int argc, char *argv[])
{
Derived<int> derived;
derived.clear();
return 0;
}
我无法编译这个程序。我明白了:
main.cpp:22: error: 'data_' was not declared in this scope
请您解释一下为什么data_ 在Derived 类中不可见?
【问题讨论】:
标签: c++ templates inheritance