无法访问派生模板类中的模板基类的成员 [英] Can't access members of a Template base class within a derived template class
本文介绍了无法访问派生模板类中的模板基类的成员的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个模板基类class.Lets说。
I have a template base class.Lets say.
template<class KeyF>
class Base
{
private:
int member1;
char member2;
....
};
我从上面派生了另一个类。
I derived another class from above class.
template<class KeyF>
class Derived : public Base<KeyF>
{
public:
void func1() {
<accessing member1/member2>
}
....
};
上述代码不能在gcc中编译。说member1不是Derived的成员。
Above code doesn't compile in gcc. saying that member1 is not a member of Derived. But it is already derived from a Base Class, then why can't it access its member?
推荐答案
<$ c中的成员$ c> Base 是 private
。您不能访问此类别之外的私人成员
( friend
除外)。让他们 protected
,或使 protected getters
。
Members in Base
are private
. You cannot access private members
of class, outside of this class (except friend
). Make them protected
, or make protected getters
.
这篇关于无法访问派生模板类中的模板基类的成员的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文