关于模板中的嵌套依赖类型名与typename

前端之家收集整理的这篇文章主要介绍了关于模板中的嵌套依赖类型名与typename前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

@H_301_1@

typename一共就两种用法@H_301_1@

①修饰模板参数,说明它是一个类型.此时可以用class关键字来代替.@H_301_1@

②修饰嵌套依赖类型名@H_301_1@

关于第②点要说明如下:@H_301_1@

1. 依赖类型名: 一个模板中的 依赖于一个模板参数的名字.@H_301_1@

2. 嵌套依赖类型名: 嵌套在一个类内部的一个依赖类型名@H_301_1@

比如:@H_301_1@

std::list<T>@H_301_1@

首先,它是一个依赖于模板参数的类型,所以它是一个依赖类型名@H_301_1@

其次,它也是一个嵌套在std内部的类型,所以它是 嵌套依赖类型名,需要用typename来修饰.如下:@H_301_1@

typename std::list<T> m_lstT;@H_301_1@

记住:@H_301_1@

在涉及到一个模板中的嵌套依赖类型名的任何时候,都必须把typename放在紧挨着它的前面.@H_301_1@

猜你在找的设计模式相关文章