Essential C++学习笔记-----第六章
2012-08-19 23:52
155 查看
1.template型别参数的传递方式选择
当参数型别确定的情况下,我们选择传递方式非常简单,如果是内建型别如int,double等,我们选择按值传递,如果是class类型等,我们选择按址传递(引用传递)
这样的效率会高点。但如果是template型别的参数,因为其实际绑定的型别可以是内建型别,也可以不是,所以就有点麻烦。建议一律采取引用传递,因为这样的话,即
使实际绑定的是内建型别,效率相同,但如果不是的话就效率快很多。并且是const reference的形式
并且在构造函数中出现的template型别参数,采用成员初始化列表的形式初始化。
如:
template<typename valType>//对于模板类,其成员函数如果在类定义内部定义时,跟一般的类没区别,如果是在外面需要加上这句作为开头
inline BTnode<valType>:: //此处的BTnode需要<valType>修饰,而下面的不用。
BTnode(const valType &)
:_val(val) //在外面初始化
{
_cnt=1;
_lchild=_rchild=0;
}
2.
当参数型别确定的情况下,我们选择传递方式非常简单,如果是内建型别如int,double等,我们选择按值传递,如果是class类型等,我们选择按址传递(引用传递)
这样的效率会高点。但如果是template型别的参数,因为其实际绑定的型别可以是内建型别,也可以不是,所以就有点麻烦。建议一律采取引用传递,因为这样的话,即
使实际绑定的是内建型别,效率相同,但如果不是的话就效率快很多。并且是const reference的形式
并且在构造函数中出现的template型别参数,采用成员初始化列表的形式初始化。
如:
template<typename valType>//对于模板类,其成员函数如果在类定义内部定义时,跟一般的类没区别,如果是在外面需要加上这句作为开头
inline BTnode<valType>:: //此处的BTnode需要<valType>修饰,而下面的不用。
BTnode(const valType &)
:_val(val) //在外面初始化
{
_cnt=1;
_lchild=_rchild=0;
}
2.
相关文章推荐
- 【吼吼睡cocos2d学习笔记】第六章 - cocos2d中的层以及层之间的传值
- C++学习笔记(第六章 指针的应用 字符串 引用 之二)
- Essential C++学习笔记-------第二章
- Python学习笔记-第六章 抽象
- Essential C++学习笔记
- Python编程入门-第六章 字符串 -学习笔记
- Mudo C++网络库第六章学习笔记
- 《Effective C++ 》学习笔记-第六章 内存简单概念 以及 空类(empty class 条款39略微提到)
- Java并发编程实战(学习笔记五 第六章 任务执行)
- 《COM原理及应用》学习笔记之第六章
- Essential C++学习笔记------第五章
- 2012/1/14 《C++ Primer Plus》第六章:分支语句和逻辑操作符 学习笔记
- UNP-第六章 I/O复用 select 和poll函数 学习笔记 - 绪论
- 《JavaScript 语言精粹》 学习笔记 —— 第六章 数组
- 系统架构师学习笔记_第六章(上)_连载
- Python基础教程第六章学习笔记——抽象
- Head first HTML&CSS ---[学习笔记第六章]
- Objective-C学习笔记第六章原文件组织
- C++primer学习笔记-第六章语句
- 【学习笔记】读项亮的《推荐系统实践》_第六章利用社交网络数据