深入模板编程笔记一
来源:互联网 发布:在线制作纪念册 源码 编辑:程序博客网 时间:2024/05/27 00:40
第一章就简单介绍
模板参数的自动推导:
template<typename t1, typename t2, typename t3, typename t4> void fun(t1 a, t2 b, t4 c)fun<double, int, int>(1, 2, 3) //用typeid测试后,发现省却参数的自动推导是按照顺序的。也就是说double int int只确定了t1 t2 t3的类型,然后函数的传人参数却有一个t4类型,由于没有传人模板,编译器便通过传人参数c自动推导t4的模板(这里是int).fun<double, char, char>(2,"char",anytype)
模板默认值:
template<typename t1 = int, typename t2>
模板函数、类体:
通过网上知道,模板的实现是随用随生成的。没有真实函数实现代码,所以定义和声明放入头文件中。讨厌的话可以用export改变。
//声明template<typename T>T fun(T v)//定义tempalte int fun(int v)//作者表示编译器会自动寻找合适模板实现,但是测试没成功
//caller1.cpp#include<iostream>tempalte<typename T>void fun(t v) { std::cout<<"func1"<<v;}void caller1() { fun(1); fun(0.1);}//caller2.cpp#include<iostream>tempalte<typename T>void fun(t v) { std::cout<<"func2"<<v;}void caller2() { fun(1); fun(0.1);}//main.cppvoid caller1();void caller2();int main() { caller1(); caller2(); return 0;}//测试发现链接器链接时基于函数名、模板实参列表、参数列表判断函数模板实例等价。所以最先创建的fun函数只要模板和后面的一样,为了方便会继续调用那个fun函数,不会另外开辟。
0 0
- 深入模板编程笔记一
- 深入模板编程笔记二
- 深入模板编程笔记三
- 深入模板编程笔记四
- 《深入实践C++模板编程》笔记
- 深入实践C++模板编程
- C++学习笔记十六-模板和泛型编程(一)
- c++模板元编程学习笔记(一)
- C++学习笔记十六-模板和泛型编程(一)
- 深入理解模板 模板元编程
- 模板学习笔记(一)
- C++ Primer 学习笔记_81_模板与泛型编程 -类模板成员[续一]
- 深入解析php模板技术原理【一】
- 类模板编程示例一
- C++模板元编程(一)
- VC深入编程内幕笔记
- 深入.net笔记(一)
- 《深入理解计算机系统》笔记一
- win7系统下开启telnet命令
- 创建AVD时,OK按钮无法点亮
- CISCO3750配置实战
- C++ 反射机制的实现Demo
- Mac OSX系统下安装和删除程序
- 深入模板编程笔记一
- MongoDB入门概念
- 类的大小
- Android项目中常用的工具类集(史上最全整理)
- 微软提供的三种核心服务:Windows+Office 365+Azure
- a href='javascript:;' jquery 中给href赋值,并弹出新窗体,查看文件 ,target
- Java操作Mongo
- 《PC-Lint检测中的常见错误》 android - lint 常见错误
- jsp+ajax+json