Effective C++
魏尔肖
如果生命没有起伏那么何来意义
展开
-
Effective C++ 第三条,尽可能使用const
列表内容 const可以修饰指针,也可以修饰指针所指物 char str[] = "ni hao"; char *p = str; // 非常量指针,非常量数据 const char *p1 = str; //非常量指针, 常量数据 char const *p2 = str; // 等于上一个 char *const p3 = str; //原创 2017-05-16 23:21:10 · 327 阅读 · 0 评论 -
Effiective C++条款第二条 尽量以const,enum,inline,替换#define
宁可以编译器替换预处理器。#define MAX 1.623MAX 可能从未被编译器看见,编译器在处理之前预处理器就将MAX移走,只能看到1.623, 当运用这个常量并且出现错误时,错误信息就只会提到1.623。用const double Max = 1.623就不会出现这种问题。Max肯定会进入符号表。 常量作为类的成员时,将其申明为static将其作用域限制于class中class Gamep原创 2017-05-14 19:30:13 · 331 阅读 · 0 评论 -
Effective C++ 第四条 确定对象被使用前以先被初始化
为内置对象进行手工初始化,C++不保证初始化它们确保每一个构造函数都将对象的每一个成员初始化。 #include <iostream> using namespace std; #include <string>class Test { public: Test(const string &str, const string& add, int num) { nam原创 2017-05-17 22:23:42 · 387 阅读 · 0 评论 -
Effective C++ 第五 六条C++默认编写调用哪些函数,如何明确拒绝自动生成的函数
c++中一个类如果没有自己声明,编译器会为它声明一个拷贝构造函数,赋值拷贝函数,一个析构函数。如果没有声明任何构造函数,会生成一个无参的构造函数。这些函数都是inline,且为public的。class Test{ }; //相当于 class Test{ Test(){...} Test(const Test& t){...} Test& operator = (const Test& t){..原创 2017-05-18 23:28:49 · 301 阅读 · 0 评论 -
Effective C++ 关于析构函数
条款七 带有多态性质的Base calsses应该声明一个virtual析构函数。 如果class带有任何的virtual, 他就应该有一个virtual 的析构函数。(虚函数会有额外的空间开销-虚表指针,不是所有的析构函都为virtual)。 条款八 析构函数绝对不要吐出异常。如果一个被析构函数调用的函数可能抛出的异常析构函数应该捕捉任何异常,并不传播或者结束程序。如果需要对于某个函数运行期抛原创 2017-05-21 22:49:41 · 280 阅读 · 0 评论