高效effective C++ 55条款之个人学习笔记1

来源:互联网 发布:unity3d入门 编辑:程序博客网 时间:2024/06/06 07:42

条款1 视c++为一个语言联邦

其实看到这第一个条款就觉得,这书买的真值了,因为看完primer一知半解后感觉c++就是个规则大集合,

以c为基础,

添加了构造函数,析构函数,封装,继承,多态,虚拟函数等面向对象守则,

再以template模板嵌入规则,

其中stl为最重要的规则模板。

因此,c++高效编程守则视状况而变化,取决于你用c++的哪一部分


条款2 尽量以const,enum,inline 替换#define

对于一直使用的脚本语言的我来说,

这条款的翻译,宁可以编译器替换预处理器这个说法,理解是字面上的:在调试之前处理的无法应用于调试跟踪因此该使用编译器。

const可以定义常量和方法,加重对此方法和变量的控制。

enum可以定义一些类和对象所使用的整形常量。

inline为内联函数,一般来说,尽量使用短而小的函数定义内联函数,建议十行以内。


条款3 尽可能使用const

const告诉编译器强制约束,确保指针,函数。。的值不被改变,增加其安全性。

在const成员函数内不能赋值,但是mutable能赋值改变变量,即使在const成员函数内。


条款4 确定对象被使用前已先被初始化


确定对象呗使用前已被初始化,否则会导致程序终止。

确保:1.手工初始化内置型non-member对象,因为c++不保证初始化他们

2.使用成员初值列对付对象的所有成分

3.为免除夸编译单元之初始化次序问题,请以local static对象替换non-local static对象


条款5 了解c++默默编写并调用哪些函数


编译器可以暗自为class创建default构造函数,copy构造函数,copy assignment操作符,以及析构函数




0 0
原创粉丝点击