More Effiective C++学习笔记
来源:互联网 发布:程序员考在职研究生 编辑:程序博客网 时间:2024/06/05 14:20
基础:
1、类型转换可能发生的情况:
单自变量构造函数;
隐式转换操作符;
2、前置、后置类型操作符:
区别:后置类型操作符会产生临时对象以表示操作之前的值,前置直接返回原对象。
重载:重载后置类型操作符需要加一个无用的形参以区别前置类型操作符(int)。
3、编译器隐式类型转换以匹配函数形参和返回值一般只进行一次,不会对一个值进行多次转换
4、真假表达式:骤死式,从左向右遇到false即停止
重载&&、||、, 是危险的,因为重载函数不会符合骤死式的行为模式。
5、new操作符、new operator和placement new
异常:
1、异常应该按引用传值
2、完成构造的对象才会被析构
构造函数内异常与析构函数异常。
效率:
1、临时对象的来源:
隐式类型转换;
函数返回对象时;
2、返回值优化:
3、x+=y 与 x= x+y的区别:x+y要多产生一个临时对象
4、RTTI的代价以及实现方法:
代价:遍历虚函数表
实现方法:在虚函数表内设置指向类的typeinfo的指针
技术:
1、限制构造函数的作用:
限制对象的产生;
限制类被派生;
2、限制析构函数的作用:
限制栈对象产生
3、私有化operator new
限制堆对象产生
3、将构造函数和非成员函数虚化
所谓虚化就是根据不同上下文产生出派生体系中不同的对象
4、尽量不要提供隐式转换操作符
5、代理类
例如使用代理类区分operator []是读还是写
6、如何自行构建虚函数表以实现特殊虚函数功能
例如:根据一个以上对象类型决定调用那个虚函数
杂项:
1、将非尾端类设计为抽象类
2、c++与c的结合
函数声明 extern "C"
内存分配 内存分配函数不能混用
数据结构兼容 不使用虚函数,struct以及内建类型都能兼容
c++全局对象和静态对象 main函数应尽量写到c++的代码里,因为它会附带有初始化全局和静态变量的功能
0 0
- More Effiective C++学习笔记
- 《More Effective C++》笔记
- 《More Effective C++》学习笔记之一引用与指针
- 《more effective c++》笔记4
- More Effective C++ 学习笔记
- <<More Effective C++>>笔记C++技巧1
- <More Effective C++>笔记--基础
- <More Effective C++>笔记--异常
- <More Effective C++>笔记--技巧
- more effective c++学习笔记 ---- 条款31
- Soot 学习笔记 8:More on profiling
- More Effective C++ 学习笔记(1)
- More Effective C++学习笔记(2)
- More Effective C++ 学习笔记(3)
- Linux命令学习笔记(2)----more命令
- more.c
- 《Effective C++》与《More Effective C++》笔记总结
- 对于静态工厂的一些理解(读Effiective Java笔记)
- 防止页面被iframe恶意嵌套
- spark安装
- 在Jenkins的Python脚本中模拟用户输入
- 用wordpress 搭建一个好看的网站(一)
- 论VS导包报错问题汇总
- More Effiective C++学习笔记
- POJ1625---Censored!(AC自动机+dp+高精度)
- EXCITE 学习笔记
- SSD原理
- 黑马程序员--正则表达式(Java)
- 【BZOJ 1433】 [ZJOI2009]假期的宿舍
- Cookie & Session & CSRF
- CodeChef STRSUB(dp+二分)
- mybatis异常:Improper inline parameter map format. Should be: #{propName,attr1=val1,attr2=val2}问题分析及解决