制作网站并销售狗类商品是否能够带来盈利?软件设计流程图如何优化以提升效率?
摘要:做网站卖狗挣钱吗,软件设计流程图,网站开发诺亚科技,东莞市专注网站建设平台C另一种编程思想称为 泛型编程,主要利用的技术就是模板 目录 C另一种编程思想称为 泛型编程,主要利用的技
做网站卖狗挣钱吗,软件设计流程图,网站开发诺亚科技,东莞市专注网站建设平台C另一种编程思想称为 泛型编程#xff0c;主要利用的技术就是模板 目录 C另一种编程思想称为 泛型编程#xff0c;主要利用的技术就是模板 一、概念 二、函数模板 1、语法与使用#xff1a; 2、函数模板注意事项 3、普通函数与函数模板的区别 4、普通函数与函数模板的调用规… C另一种编程思想称为 泛型编程主要利用的技术就是模板 目录 C另一种编程思想称为 泛型编程主要利用的技术就是模板 一、概念 二、函数模板 1、语法与使用 2、函数模板注意事项 3、普通函数与函数模板的区别 4、普通函数与函数模板的调用规则 5、模板的局限性 三、类模板
作用建立一个通用类类中的成员属性的数据类型可以不具体指定用一个虚拟的类型来表示
1、语法与使用 2、类模板与函数模板的区别 3、类模板中成员函数创建时机
4、类模板对象作函数参数
三种方式
①指定传入的类型 直接显示对象的数据类型主要用的类型
②参数模板化 将对象中的参数变为模板进行传递
③整个类 模板化 将这个对象类型 模板化进行传递 5、类模板与继承
①当子类继承的父类是一个类模板时子类在声明时要指定出父类中T的类型
②如果不指定编译器无法给子类分配内存因为不知道父类中成员的大小
③如果想灵活指出父类中T的类型子类也需要变成类模板
6、类模板成员函数类外实现
①类模板构造函数类外实现
②类模板成员函数类外实现
7、类模板分文件编写
①直接包含.cpp文件
②将声明与实现写在一个hpp文件中约定俗成hpp并不必须
8、类模板与友元
①全局函数类内实现直接在类内声明友元即可
②全局函数类外实现先提取让编译器知道全局函数的存在 9、类模板案例 实现一个通用的数组类要求
①可以对内置数据类型以及自定义数据类型进行存储
②将数组中的数据存储到堆区
③构造函数中要传入数组的容量
④提供拷贝构造函数以及operator以防止浅拷贝问题
⑤提供尾插法与尾删法对数组中数据进行增加与删除
⑥通过下标的方式访问数组中的元素
⑦获取当前数组中元素的个数以及数组的容量 一、概念
建立通用的模具提高复用性
如拍一寸照片的模板 制作PPT的模板 但是注意模板并不是万能的如人的1寸照片模板不能用来拍其他生物的照片
而且制作PPT时不能直接使用需要自己加内容啥的 因此
①模板不能直接使用只是一个框架需要自己合理使用
②模板是通用的但不是万能的 二、函数模板
作用建立一个通用函数其返回值类型与形参类型可以不指定用一个虚拟的类型来代表 1、语法与使用
templatetypename T
函数声明或定义template声明创建模板
typename表示其后面的符号是一种数据类型可以用class
T通用的数据类型名称可以替换通常为大写字母T 接下来使用交换函数swap来举例
首先写出int整型交换函数与float浮点型交换函数
// 整型 交换函数
void swapInt(int x, int y)
{int tmp y;y x;x tmp;
}
// 浮点型 交换函数
void swapFloat(float x, float y)
{float tmp y;y x;x tmp;
}
测试
int main()
{int a 10;int b 20;swapInt(a, b);cout a b endl;float c 10.5;float d 20.5;swapFloat(c, d);cout c d endl;return 0;
} 可以正常交换并输出 但是想要交换不同的数据就必须实现不同的函数改变返回值类型或者形参类型但是具体代码又类似
因此我们使用函数模板
templatetypename T
void Myswap(T x, T y)
{T tmp y;y x;x tmp;
}
调用Myswap函数 int a 10;int b 20;Myswap(a, b);cout a b endl;float c 10.5;float d 20.5;Myswap(c, d);cout c d endl; 而我们在调用函数时并未告知Myswap函数我们传入的类型是什么使编译器自动推导出类型并实现
这叫做 自动推导类型 还有个 显式指定类型 int e 100;int f 20;Myswapint(e, f);cout e f endl; 就是调用函数时在参数列表前加上int这就相当于告知编译器刚才的类型T等于int 2、函数模板注意事项
