代码改变世界

Effective C++ 学习笔记(5)

2011-04-13 09:53 by Daniel Zheng, 257 阅读, 0 推荐, 收藏, 编辑
摘要:尽量使用C++风格的注释 C风格的注释/* */在C++中仍然可以使用,但是推荐使用C++中的尾行注释。 很多时候,你需要去注释掉一些代码,使用C++风格的尾行注释如下: if(a>b) { //a=a^b; //swap a and b //b=a^b; //a=a^b; } 如果使用C风格的注释: if(a>b) { /*a=a^b; /*swap a and b*/ a=a^b; a=a^b; */ } 上述代码实际上注释的只是一行而已。 阅读全文

Effective C++ 学习笔记(4)

2011-04-12 21:47 by Daniel Zheng, 245 阅读, 0 推荐, 收藏, 编辑
摘要:尽量使用new和delete而不是malloc和free malloc和free是C语言对应的内存操作函数,在C++中无法在分配与释放内存是自动调用构造函数与析够函数。 使用malloc给10个string对象的数组分配内存: string *stringArray1=static_cast<string*>(malloc(10*sizeof(string))); stringArray1指向的内存空间的确可以容纳10个string对象,但没有创建这些对象,仅仅只是分配了这么大的内存空间而已。实际使用这些内存初始化数组里的对象将很困难。 使用new进行同样的操作: string * 阅读全文

Effective C++ 学习笔记(3)

2011-04-10 14:42 by Daniel Zheng, 284 阅读, 1 推荐, 收藏, 编辑
摘要:尽量使用<iostream>而不是<stdio.h> scanf与printf不是类型安全的,而且不具有扩展性。 <iostream.h>不是标准C++头文件,命名空间是全局。<iostream>命名空间是str::。 阅读全文

Effective C++ 学习笔记(2)

2011-04-10 13:31 by Daniel Zheng, 340 阅读, 1 推荐, 收藏, 编辑
摘要:尽量使用const和inline而不是#define 尽量使用编译器而不是预处理。 #define定义的宏不会加入符号表,不利于调试。 当使用#define定义常量时,使用const替代:#define ABC 123 => const int ABC=123;定义某个class常量时要同时用static与const修饰,以确保只存在一份拷贝。 当使用#define定义类似函数的宏时,用inline函数替代: 举例: 计算两个对象大小:#define max(a,b) ((a)>(b)?(a):(b)),对于这样的宏一定要加括号,因为预处理器只是完成简单的字符串替代,可能引起意想不 阅读全文

Effective C++ 学习笔记(1)

2011-04-09 19:49 by Daniel Zheng, 282 阅读, 1 推荐, 收藏, 编辑
摘要:视C++为一个语言联邦C。C++以C语言为基础。Object-Oriented C++。C with C++ 的特性:class,encapsulation,inheritance,polymorphism,virtual function等等。Template C++。Generic programming with C++。STL。A template library。 阅读全文
上一页 1 ··· 3 4 5 6 7