C++面向对象入门(四十)类模板中使用函数类型参数
函数类型参数: 在类模板的模板参数表中必须至少有一个类参数, 还可以有非类参数的参数, 非类参数的参数被称为函数类型参数,
又称为无类型模板参数, 采用语法和普通函数参数一样, 只包含参数类型和参数名. 但是只限于整型, 指针型和引用. 传递给函数
类型参数的实参要么是整型常量, 要么是指向全局函数或对象的指针或引用组成. 函数类型参数的值不能改变, 可以看作常量, 常
用来指定数组大小
又称为无类型模板参数, 采用语法和普通函数参数一样, 只包含参数类型和参数名. 但是只限于整型, 指针型和引用. 传递给函数
类型参数的实参要么是整型常量, 要么是指向全局函数或对象的指针或引用组成. 函数类型参数的值不能改变, 可以看作常量, 常
用来指定数组大小
特点总结:
1 只能为整型, 指针或者引用(指向全局函数或对象)
2 不能改变值(可看作常量)
3 在模板参数表的定义语法和普通函数参数表定义一样
语法:
数据类型 参数名
1 只能为整型, 指针或者引用(指向全局函数或对象)
2 不能改变值(可看作常量)
3 在模板参数表的定义语法和普通函数参数表定义一样
语法:
数据类型 参数名
代码示例:
#include <iostream> using namespace std; /* 函数类型参数: 在类模板的模板参数表中必须至少有一个类参数, 还可以有非类参数的参数, 非类参数的参数被称为函数类型参数, 又称为无类型模板参数, 采用语法和普通函数参数一样, 只包含参数类型和参数名. 但是只限于整型, 指针型和引用. 传递给函数 类型参数的实参要么是整型常量, 要么是指向全局函数或对象的指针或引用组成. 函数类型参数的值不能改变, 可以看作常量, 常 用来指定数组大小 特点总结: 1 只能为整型, 指针或者引用(指向全局函数或对象) 2 不能改变值(可看作常量) 3 在模板参数表的定义语法和普通函数参数表定义一样 语法: 数据类型 参数名 */ //使用函数类型参数(无类型模板参数)指定数组大小 template<typename AType, int size> class aType { private: AType arr[size]; public: aType(AType arr[]); AType &operator[](int n); }; int main() { int intArr[] = { 9,8,6,5,3,2 }; aType<int, 6> intArray(intArr); cout << intArray[5] << endl; cout << intArray[-1] << endl; cout << intArray[8] << endl; system("pause"); } template<typename AType, int size> aType<AType, size>::aType(AType arr[]) { for (size_t i = 0; i < size; i++) { this->arr[i] = arr[i]; } } template<typename AType, int size> AType &aType<AType, size>::operator[](int n) { if (n < 0 || n >= size) { cout << "数组下标越界, 将返回第一个元素!" << endl; return arr[0]; } return arr[n]; }
路漫漫其修远兮,吾将上下而求索。

浙公网安备 33010602011771号