Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 从派生类访问基类中的类型别名_C++_Templates_C++17 - Fatal编程技术网

C++ 从派生类访问基类中的类型别名

C++ 从派生类访问基类中的类型别名,c++,templates,c++17,C++,Templates,C++17,当尝试从派生类访问基类中的类型别名时,我面临以下问题: 样板 甲级{ 公众: 使用T2=T; }; 样板 B类:公共A{ 公众: typename A::T2 obj1;//确定 T2 obj2;//错误 }; 样板 C类:公共A类{ 公众: typename A::T2 obj1;//确定 T2 obj2;//正常 }; 我无法理解为什么用显式类型初始化基类会让我们访问基类中的类型别名,但在第一种情况下,它会导致错误 提前感谢。T2是一个非独立名称。非依赖名称不会在依赖基类(如A)中查找,后者

当尝试从派生类访问基类中的类型别名时,我面临以下问题:

样板 甲级{ 公众: 使用T2=T; }; 样板 B类:公共A{ 公众: typename A::T2 obj1;//确定 T2 obj2;//错误 }; 样板 C类:公共A类{ 公众: typename A::T2 obj1;//确定 T2 obj2;//正常 }; 我无法理解为什么用显式类型初始化基类会让我们访问基类中的类型别名,但在第一种情况下,它会导致错误

提前感谢。

T2是一个非独立名称。非依赖名称不会在依赖基类(如A)中查找,后者取决于模板参数t

答::T2起作用,它是从属名称。依赖名称只能在实例化时查找,届时将知道必须探究的确切基专门化

另一方面,当基类是A时,代码可以工作,因为A是非依赖基类,并且非依赖名称T2可以在A的范围内找到。

T2是非依赖名称。非依赖名称不会在依赖基类(如A)中查找,后者取决于模板参数t

答::T2起作用,它是从属名称。依赖名称只能在实例化时查找,届时将知道必须探究的确切基专门化

另一方面,当基类是A时,代码可以工作,因为A是非依赖基类,并且非依赖名称T2可以在A的作用域中找到