gpt4 book ai didi

c++ - 模板类派生自非模板基类 : No access to base class variables?

转载 作者:搜寻专家 更新时间:2023-10-31 00:14:47 24 4
gpt4 key购买 nike

我有以下类结构:

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))
{
}
};

所以基本上是从基类 Base 派生的模板类 Derived。访问基类的成员变量时出现以下错误:

test.h:34:88: error: class ‘Derived<lhs_t, rhs_t>’ does not have any field named ‘openIndices’

我知道 this question :如果我的类是从模板类派生的,我将无法访问成员变量。但就我而言,我不是从模板类派生的,我仍然无法访问成员变量。谁能告诉我为什么?

最佳答案

您不能初始化基类的成员变量。您必须在基类中提供适当的构造函数并调用该构造函数。

关于c++ - 模板类派生自非模板基类 : No access to base class variables?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21766937/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com