使用模版的程序设计

来源:互联网 发布:淘宝卖白酒可以吗 编辑:程序博客网 时间:2024/06/01 08:30

本文内容参考 北大程序设计实习c++ 视频课程 郭炜、刘家瑛老师主讲

1. 函数模版

1.1 泛型程序设计

不指定具体数据类型

优势:可以减少重复代码的编写;

template<class 类型参数1class 类型参数2,…>返回值类型 模版名(形参表){    函数体}

函数模版可以重载,只要形参不同就可以。

c++编译器遵循的优先方式:
1. 先找普通函数
2. 找参数匹配的模板函数
3. 找实参经过自动类型转换后能够匹配的函数
4. 上面都找不到则报错

要注意赋值本身的兼容性的原则

2. 类模版

定义一批相似的类

例如 定义一个数组类:

  • 定义一个或多个参数
  • 参数表示不同的数据类型

类模版写法:

template <类型参数表>class 类模板名{    成员函数和成员变量};//类型参数表写法:class 类型参数1,class 类型参数2,……

类模版定义成员函数,如在类模版外面定义时

templata<型参数表>返回值类型 类模版名<类型参数名列表>::成员函数名(参数表){    ……}

类模板定义对象写法

类模版名<真实类型参数表> 对象名(构造函数实际参数表)

如果类模版有无参构造函数,那么也可以只写

类模版名<真实类型参数表> 对象名;

类模版中的“<类型参数表>” 可以包含非类型参数

类模版与继承

  • 类模版派生出类模版
  • 模版类(即类模版中类型/非类型参数实例化后的类)派生出的类模版
  • 普通类派生出类模版
  • 模版类派生出普通类
    这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

0 0
原创粉丝点击