上一页 1 ··· 15 16 17 18 19 20 21 22 23 ··· 44 下一页
摘要: 类模板与友元 学习目标: 掌握类模板配合友元函数的类内和类外实现 全局函数类内实现 - 直接在类内声明友元即可 全局函数类外实现 - 需要提前让编译器知道全局函数的存在 示例: template<class T1, class T2> class Person { //1、全局函数配合友元 类内实现 阅读全文
posted @ 2022-04-22 22:42 安静点-- 阅读(100) 评论(0) 推荐(0)
摘要: 类模板分文件编写 学习目标: 掌握类模板成员函数分文件编写产生的问题以及解决方式 问题: 类模板中成员函数创建时机是在调用阶段,导致分文件编写时链接不到 解决: 解决方式1:直接包含.cpp源文件 解决方式2:将声明和实现写到同一个文件中,并更改后缀名为.hpp,hpp是约定的名称,并不是强制 示例 阅读全文
posted @ 2022-04-16 18:29 安静点-- 阅读(210) 评论(0) 推荐(0)
摘要: 类模板成员函数类外实现 学习目标:能够掌握类模板中的成员函数类外实现 示例: #include <string> //类模板中成员函数类外实现 template<class T1, class T2> class Person { public: //成员函数类内声明 Person(T1 name, 阅读全文
posted @ 2022-04-16 18:20 安静点-- 阅读(165) 评论(0) 推荐(0)
摘要: 类模板与继承 当类模板碰到继承时,需要注意一下几点: 当子类继承的父类是一个类模板时,子类在声明的时候,要指定出父类中T的类型 如果不指定,编译器无法给子类分配内存 如果想灵活指定出父类中T的类型,子类也需变为类模板 示例: template<class T> class Base { T m; } 阅读全文
posted @ 2022-04-16 18:15 安静点-- 阅读(149) 评论(0) 推荐(0)
摘要: 类模板对象做函数参数 学习目标: 类模板实例化出的对象,向函数传参的方式 一共有三种传入方式: 指定传入的类型 直接显示对象的数据类型 参数模板化 将对象中的参数变为模板进行传递 整个类模板化 将这个对象类型 模板化进行传递 示例: #include <string> //类模板 template< 阅读全文
posted @ 2022-04-16 18:12 安静点-- 阅读(225) 评论(0) 推荐(0)
摘要: 类模板中成员函数创建时机 类模板中成员函数和普通类中成员函数创建时机是有区别的: 普通类中的成员函数一开始就可以创建 类模板中的成员函数在调用时才创建 示例: class Person1 { public: void showPerson1() { cout << "Person1 show" << 阅读全文
posted @ 2022-04-16 17:55 安静点-- 阅读(180) 评论(0) 推荐(0)
摘要: 类模板与函数模板区别 类模板与函数模板区别主要有两点: 类模板没有自动类型推导的使用方式 类模板在模板参数列表中可以有默认参数 示例: #include <string> //类模板 AgeType 默认是int类型,所以在调用的时候可以不显示填 template<class NameType, c 阅读全文
posted @ 2022-04-16 17:48 安静点-- 阅读(88) 评论(0) 推荐(0)
摘要: 类模板语法 类模板作用: 建立一个通用类,类中的成员 数据类型可以不具体制定,用一个虚拟的类型来代表。 语法: template<typename T> 类 解释: template 声明创建模板 typename 表面其后面的符号是一种数据类型,可以用class代替 T 通用的数据类型,名称可以替 阅读全文
posted @ 2022-04-16 17:44 安静点-- 阅读(67) 评论(0) 推荐(0)
摘要: 模板的局限性 局限性: 模板的通用性并不是万能的 例如: template<class T> void f(T a, T b) { a = b; } 在上述代码中提供的赋值操作,如果传入的a和b是一个数组,就无法实现了 再例如: template<class T> void f(T a, T b) 阅读全文
posted @ 2022-04-12 22:49 安静点-- 阅读(69) 评论(0) 推荐(0)
摘要: 普通函数与函数模板的调用规则 调用规则如下: 如果函数模板和普通函数都可以实现,优先调用普通函数 可以通过空模板参数列表来强制调用函数模板 函数模板也可以发生重载 如果函数模板可以产生更好的匹配,优先调用函数模板 示例: //普通函数与函数模板调用规则 void myPrint(int a, int 阅读全文
posted @ 2022-04-12 22:47 安静点-- 阅读(137) 评论(0) 推荐(0)
上一页 1 ··· 15 16 17 18 19 20 21 22 23 ··· 44 下一页