gpt4 book ai didi

c++继承自专门的模板类

转载 作者:太空宇宙 更新时间:2023-11-04 12:04:27 24 4
gpt4 key购买 nike

template<typename T1, typename T2, typename T3>
class A: public A<T1, T2, void> {
public:
T1 a;
T2 b;
T3 c;

void set() { a = aa; } // Cannot find variable `aa' here!
};

template<typename T1, typename T2>
class A<T1, T2, void> {
public:
T1 aa;
T2 bb;
};

如上所述,我有一个模板类A,及其部分特化形式A'。那么A有没有可能继承A'呢?根据 g++,似乎还可以。但是,当我尝试访问 A' 中的成员时,g++ 开始提示:找不到该符号。有人知道为什么吗?

最佳答案

据我所知,您必须使用“using”将 aa 拉入派生类。将以下内容(我不记得确切的语法,所以请原谅我的任何编译问题)到您的通用模板中:

using A<T1, T2, void>::aa;

编辑:正如 Mehrdad 指出的那样->aa 也应该有效。

关于c++继承自专门的模板类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12793892/

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