关闭

Item 8:别让异常逃离析构函数【effective C++读书笔记】

不要让异常出现在析构函数里,如果是析构函数中调用的函数导致的异常,应在析构函数中对异常作出处理(try,catch),吞下异常(不传播)或结束程序。举例中close()是需要调用的函数。                                              ①  如果程序遭遇一个“于析构期间发生的错误”后无法继续执行,“强迫结束程序”是个合理选项,毕竟它可以阻止异常从析构...
阅读(4) 评论(0)

Item 7:为多态基类声明virtual析构函数【effective C++读书笔记】

为防止内存泄漏,多态性质的基类应该声明虚析构函数,任何类中只要包含有虚函数那么就应该声明虚析构函数。   “给基类一个虚析构函数”这个规则只适用于带多态性质的基类上,这种基类的设计目的是通过基类接口处理派生类对象。 如果一个类本身不作为基类使用,或者不是为了具备多态性质,那么就不应该声明虚析构函数。   不要试图去继承诸如std::string、所有STL容器vector、list、tr...
阅读(3) 评论(0)

Item 6:若不想使用编译器自动生成的函数,就该明确拒绝【effective C++读书笔记】

一般来说,如果不希望类实现某个功能,只要不定义相关的功能函数即可,但在Item 5 中我们知道:一旦尝试调用拷贝构造函数或拷贝赋值运算符,编译器就会自动生成默认。   如果想要阻止对象拷贝操作,我们可以自定义一个uncopyable类,将拷贝构造函数和拷贝操作符声明为私有,不给出实现,再继承它: class Uncoptable{ protected:              //允许派...
阅读(15) 评论(0)

Item 5:了解C++默默编写并调用哪些函数【effective C++读书笔记】

C++编译器会自动为类创建默认构造函数、默认析构函数,如果使用到了拷贝操作,编译器也会创建默认拷贝构造函数以及默认拷贝赋值运算符。如果用户自行定义了以上内容,编译器则不会进行默认创建。   拷贝赋值运算符的行为基本上与拷贝构造函数一致,但存在以下情况,编译器会拒绝生成赋值操作符: ①对一个内含引用成员的类进行赋值操作(C++不允许引用更改指向) ②对一个内含const成员的类进行赋值操作 ...
阅读(15) 评论(0)

Item 4:确定对象被使用前已先被初始化【effective C++读书笔记】

使用未初始化的值可能会导致意料之外的结果,因此在使用前最好先做好初始化工作。 存在规则用于描述“对象的初始化动作何时一定会发生,何时不一定发生”。一般来说,C part of C++(Item 1)初始化可能招致运行期成本,那么就不保证发生初始化,但对于non-C parts of C++则不然。例如数组(C)不保证其内容被初始化,而vector(STL)则不然。   对于内置类型,必须...
阅读(15) 评论(0)

Item 3:尽可能使用const【effective C++读书笔记】

const出现在星号左边,表示被指物是常量;出现在星号右边,表示指针自身是常量。 const显式地表明哪些部分是不应修改的,增强了代码的可读性,同时也让编译器在检测到非法的修改操作时及时报错。 const某些情况下可以避免将“==”写成“=”的错误 另外,const成员函数可以操作const对象(const对象只能调用const成员函数而不能调用非const成员函数,非const对象可以调用...
阅读(20) 评论(0)

Item 2:尽量以const,enum,inline替换#define【effective C++读书笔记】

“宁可以编译器代替预处理器”。 当使用宏定义的常量时,该符号在预编译时被直接替换为值,一旦出错则难以追踪(出错信息值显示该值而非该符号),因此最好以一个const常量代替。 以下是两种特殊情况: ①定义常量指针 const char* const book = “effective_C++”;//注意需要两个const 或者 const std::string book(“effect...
阅读(19) 评论(0)

Item 1:视C++为一个语言联邦【effective C++读书笔记】

C++一开始只是C加上面向对象的特性,后来当C++逐渐成熟,又增添了许多新的特性以及观念。如异常对函数的结构化带来不同的做法(Item 29),模版(Item 41),以及STL。 *如今C++已经是一种多重范型编程语言,它同时支持面向过程、面向对象、函数形式、泛型形式、元编程形式。      我们应该把C++视为 ①C ②面向对象的C++ ③模版C++ ④STL      以上四种...
阅读(17) 评论(0)

链表题目整理

链表逆序、链表归并...
阅读(29) 评论(0)

各种常见排序代码整理

插入、冒泡、选择、快速...
阅读(26) 评论(0)

linux下定时执行任务的方法

linux下定时执行任务的方法...
阅读(34) 评论(0)

float类型比较大小

float类型互相比较大小以及跟0比较的正确方法...
阅读(43) 评论(0)

C++面试之GetMemory问题

C++面试之GetMemory问题...
阅读(43) 评论(0)

OpenCV边缘检测:Canny算子,Sobel算子,Laplace算子,Scharr滤波器

站在巨人的肩膀上,我们可以看的更远。感谢毛星云大大,学习了。...
阅读(105) 评论(0)

字符串笔试题

相当经典的字符串高频笔试题,mark...
阅读(48) 评论(0)
36条 共3页1 2 3 下一页 尾页
    个人资料
    • 访问:11780次
    • 积分:416
    • 等级:
    • 排名:千里之外
    • 原创:29篇
    • 转载:7篇
    • 译文:0篇
    • 评论:2条
    文章分类
    最新评论