基础知识:
c++语言关键特性
1.template(模板)
所谓templates,是针对“一个或多个尚未明确的型别”所撰写的函数或类别。使用templates时,可以而显示的(explicitly)或隐式的(implicitly)将型别当做参数来传递。
关键字 typename
用于作为型别之前的标识符号。考虑下面的例子:
template
class MyClass {
typename T::SubType * ptr;
…
};这里,typename指出SubType是class T中定义的一个型别,因此ptr是一个指向T::SubType型别的指针。如果没有关键字typename,SubType会被当成一个static成员,于是:
T::SubType * ptr;
会被解释成为型别T内的数值SubType与ptr的乘积。
注意,如果要吧一个template中的某个标识符号指定为一种型别,就算意图显而易见,但是关键字typename也不可或缺,因此C++的一般规则是,除了以typename装饰之外,template内的任何标识符号都被一个值(value)而非一个型别。Member Template(成员模板)
class member funtion 可以是个
std标准库学习(一)
最新推荐文章于 2024-06-04 14:11:13 发布
本文介绍了C++中的模板(templates)概念,包括关键字typename的使用,成员模板及其特殊情况——模板构造函数。此外,还讲解了基本类型的显示初始化、异常处理机制以及命名空间的作用,帮助理解C++标准库中的核心概念。
摘要由CSDN通过智能技术生成