effective c++总结
来源:互联网 发布:铸铁锅粗糙知乎 编辑:程序博客网 时间:2024/05/05 09:43
1. define函数容易出现不易控制的错误
2. new和delete使用的时候比malloc和free多调用了析构和构造函数
3. set_new_handler可以处理内存不足的情况
4. 可以使用void* __cdecl opterator new(size_t size, ___FILE__, ___LINE__)重载new函数,或者使用类void* operator new(size_t, new_handler p)重载类new函数。size的大小是由c++编译器计算得出的。new_handler p可以省略,但是会隐藏new的标准访问。
类new函数被重载后需要返回p指针作为类的内存空间(类的内存空间布局参见深入理解c++对象模型),如果p指针不为空则调用构造函数。这里的指针没有合法性检查。
2. new和delete使用的时候比malloc和free多调用了析构和构造函数
3. set_new_handler可以处理内存不足的情况
4. 可以使用void* __cdecl opterator new(size_t size, ___FILE__, ___LINE__)重载new函数,或者使用类void* operator new(size_t, new_handler p)重载类new函数。size的大小是由c++编译器计算得出的。new_handler p可以省略,但是会隐藏new的标准访问。
类new函数被重载后需要返回p指针作为类的内存空间(类的内存空间布局参见深入理解c++对象模型),如果p指针不为空则调用构造函数。这里的指针没有合法性检查。
5. 使用构造函数初始化在构造函数传递非引用类时能够节省非引用类的复制开销
6. 私有继承时编译器不会将子类指针转化为基类指针使用。
7. 就算在构造函数内部显示调用了基类的构造函数,基类构造函数还是在子类构造函数之前用这段代码执行,也就是说调用基类构造函数的代码比他之前的代码更早执行。
8. 对于类的调用,实际上编译器把class::fun(x)优化成了class_fun(this, x),类的成员函数被提取到专门的代码段,而访问类的数据则是通过this指针传递的。私有函数外部调用在编译阶段就会被阻止调用,当然如果你能知道私有函数的地址,还是能直接调用他的。不过编译器让不让你调就是问题了。。
- 《Effective C++》总结
- 《Effective C++》学习总结
- 《Effective C++》02总结
- Effective obj-C 2.0 总结
- Effective Objective-C 2.0 总结
- 《Effective C++》条款03总结
- 《Effective C++》条款04总结
- 《Effective C++》条款07总结
- 《Effective C++》与《More Effective C++》笔记总结
- 《Effective C#》Part I:第一部分总结
- 《Effective C#》Part II:第二部分总结
- 《Effective Modern C++》Item 1总结
- 《Effective Modern C++》Item 2总结
- Effective Modern C++》Item 3总结
- Effective objective-C 2.0总结归纳
- Effective Objective-C 2.0总结(第一章)
- 读<<effective C++>>的疑惑总结
- 《Effective C++》关于const,define等总结
- 网页链接启动本地应用
- 32位/64位 区别
- javascript(JS)常见的表单输入限制方法代码
- 介绍“最好的编程字体”Monaco
- 食盐巧洗苹果
- effective c++总结
- update to xss-harvest
- flex中引入css的方法
- Android应用apk程序自动签名工具
- Android 开源3D游戏引擎调研(jPCT-AE)
- GridView中多个DropDownList的联动问题
- oracle 日志
- 辣椒
- ASIO 之 剖 析--(2) 剖析 ASIO