随笔分类 -  Effective C++

Effective C++学习笔记 条款07:为多态基类声明virtual析构函数
摘要:一、C++明确指出:当derived class对象经由一个base class指针被删除,而该base class带着一个non-virtual析构函数,其结果未定义——实际执行时通常发生的是对象的derived成分没有被销毁!(注:使用基类引用派生类的方式使用多态,由于引用只是对原对象的一个引用... 阅读全文

posted @ 2014-10-31 00:37 冰雨纷飞 阅读(429) 评论(0) 推荐(0)

Effective C++学习笔记 条款06:如不想使用编译器自动生成的函数,就该明确拒绝
摘要:一、为驳回编译器自动提供的机能,可将相应成员函数声明为private并且不予实现。(如果你仅仅是自己不实现的话,编译器会帮你实现) 如:class A{ public: A(const string& name):m_name(name) {} private: ... 阅读全文

posted @ 2014-10-31 00:13 冰雨纷飞 阅读(228) 评论(0) 推荐(0)

Effective C++学习笔记 条款05:了解C++默默编写并调用的哪些函数
摘要:一、如果用户没有提供构造函数、copy构造函数、copy assignment操作符和析构函数,当且仅当这些函数被需要的时候,编译器才会帮你创建出来。编译器生成的这些函数都是public且inline。 当你写下这样一个类的时候:class Empty {}; 如果上述的函数是被需要的话,那么编... 阅读全文

posted @ 2014-10-31 00:04 冰雨纷飞 阅读(196) 评论(0) 推荐(0)

Effective C++学习笔记 条款04:确定对象被使用前已先被初始化
摘要:一、为内置类型对象进行手工初始化,因为C++不保证初始化它们。二、对象初始化数据成员是在进入构造函数用户编写代码前完成,要想对数据成员指定初始化值,那就必须使用初始化列表。 1 class A 2 { 3 public: 4 A(const string &str) 5 { 6 ... 阅读全文

posted @ 2014-10-30 23:49 冰雨纷飞 阅读(175) 评论(0) 推荐(0)

Effective C++学习笔记 条款02:尽量以const,enum,inline替换 #define
摘要:尽量使用const替换 #define定义常量的原因:#define 不被视为语言的一部分宏定义的常量,预处理器只是盲目的将宏名称替换为其的常量值,导致目标码中出现多分对应的常量,而const定义的常量,会进入记号表,使用到该常量的地方使用的同一份,使目标码的量更小点;const可以在类中定义一个c... 阅读全文

posted @ 2014-10-30 22:50 冰雨纷飞 阅读(164) 评论(0) 推荐(0)

导航