栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

c++基础-补漏日记7(二级指针,模板,类模板,类模板传参)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

c++基础-补漏日记7(二级指针,模板,类模板,类模板传参)

目录

1  二级指针

二维数组

 动态开辟

2 模板

1.普通函数自带隐式转换,如计算时会把字符转成整型

 2.函数模板自动类型推导,不可以发生隐式类型推导。

 3.函数模板显式指定类型,可发生隐式转换

普通函数和函数模板的调用规则

3 类模板的基本语法

基本语法

模板和参数列表可以有默认参数。

类模板的函数成员并不是一开始就创建的,而是调用时创建的。

4 类模板对象传参

1指定传入类型

2参数模板化

3整个类模板化


 二级指针

二维数组

p指向五个区域,每个区域会指向五个区域。

当数组来用就好。


 动态开辟

原↓

动态开辟↓

模板

  ·把返回值类型和形参类型抽象出来。

  ·类型参数化。

(void也可改成T)

写一次模板,头顶要写一次template。


1.普通函数自带隐式转换,如计算时会把字符转成整型

 2.函数模板自动类型推导,不可以发生隐式类型推导。

 3.函数模板显式指定类型,可发生隐式转换


普通函数和函数模板的调用规则

1.函数模板和普通函数都存在,优先调用普通函数

2.空模板参数列表,优先调用函数模板。

Add<>(a,b);

3.函数模板可以发生函数重载

4.函数模板如果能更好地匹配,优先调用函数模板。

 主函数是char

 普通函数int,函数模板T

编译器认为,char转int,不如直接用T方便。


猜测参考:

“template<> + 普通函数重载 = 模板的重载” 

类模板的基本语法

基本语法

 类的形参类型全部替换。

模板和参数列表可以有默认参数。

类模板的函数成员并不是一开始就创建的,而是调用时创建的。

(1)成功例子

 

 (2)失败例子

       1.有两个基本类basic1和basic2、一个进阶类advanced。

       2.在advanced里用T定义了个a。

       3.advanced类的成员函数调用了basic1和basic2的成员函数,不报错

       4.主函数实例化模板是basic1的advanced对象。该对象能调用basic1的成员函数。(图1)

        5.主函数实例化模板是basic2的advanced对象。该对象不能调用basic1的成员函数。(图2)因为adv2内存放的是basic2的成员函数,然而创建的对象是basic1的,所以不能。

类模板对象传参

1.指定传入类型

参数模板化

写一个带模板的方法,要写一次template。

整个类模板化

 

有点暴力。。。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1022130.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号