【发布时间】:2014-03-13 01:56:27
【问题描述】:
我有以下类结构:
class Base {
public:
std::set<Index> openIndices;
Base() {};
};
template<typename lhs_t, typename rhs_t>
class Derived : public Base {
public:
lhs_t &lhs;
rhs_t &rhs;
Derived(lhs_t &_lhs, rhs_t &_rhs) :
Base(),
lhs(_lhs),
rhs(_rhs),
openIndices(std::set_symmetric_difference(lhs.openIndices, rhs.openIndices))
{
}
};
所以基本上是一个模板类Derived派生自基类Base。访问基类的成员变量时,出现以下错误:
test.h:34:88: error: class ‘Derived<lhs_t, rhs_t>’ does not have any field named ‘openIndices’
我知道this question:如果我的类是从模板类派生的,我将无法访问成员变量。但在我的情况下,我不是从模板类派生的,我仍然无法访问成员变量。谁能告诉我为什么?
【问题讨论】:
标签: c++ templates inheritance