gpt4 book ai didi

c++ - 为什么我不能从 C++ 中的模板化父类(super class)继承?

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

<分区>

Possible Duplicate:
Base template class data members are not visible in derived template class?

我正在尝试创建一个扩展模板化父类(super class)的模板化类。

template <class T>
class SuperClass {
public:
T my_data;
};

template <typename T2>
class SubClass : public SuperClass<T2>
{
public:
T2 f() { return my_data; }
};

int main()
{
SubClass<int> x;
return 0;
}

但是,我收到以下错误(使用 g++ 4.6.1):

test.cpp:11:18: error: ‘my_data’ was not declared in this scope

奇怪的是,如果我重新定义 SubClass::f() 如下:

T2 f() { return this->my_data; }

有人明白为什么我需要一个 this-> 吗?

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