![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Effective C++笔记
ize
这个作者很懒,什么都没留下…
展开
-
Effective C++--条款06:如何禁止编译器自动生成函数
假如有一个类HomeForSale,,但是我们不允许任何对HomeForSale类的复制,我们可以显式地将HomeForSale的赋值构造函数和 "= "操作符重载函数设为private,并且不去定义它(不写出函数体)。 例如:class HomeForSale { public: //... private: //... HomeForSale(const HomeFo原创 2016-06-13 19:30:49 · 391 阅读 · 0 评论 -
Effective C++--条款07:为多态基类声明virtual析构函数
假设我们要设计一系列的计时器,我们先声明一个TimeKeeper基类: //一个计时器的基类 class TimeKeeper { public: TimeKeeper(); ~TimeKeeper(); //... }; class AtomicClock: public TimeKeeper {/*....*/}; //原子钟 class WaterClock:原创 2016-06-13 20:35:08 · 392 阅读 · 0 评论 -
Effective C++--条款02:尽量以const,enum,inline替换#define(以编译器替换预处理器)
此条款也可以改为:“宁可以编译器替换预处理器”。 假设有一个宏: #define ASPECT_RATIO 1.653当我们运用这个常量但获得一个编译错误信息时,错误信息可能会提到1.653而不是ASPECT_RATIO,如果ASPECT_RATIO被定义在一个非我们所写的头文件内,我们便很难debug,我们将因为追踪他而浪费时间。 一个更好的写法: const double原创 2016-06-14 12:26:26 · 404 阅读 · 0 评论 -
Effective C++--条款03:尽可能使用const
如果const出现在*左端,表示被指物为常量,如果const出现在*右端,说明指针自身为常量。 例如: int b = 9; int a = 88; const int* p1 = &b; //被指向的b为常量,即不能通过*p1 来修改b的值,但可以直接修改b的值; int* const p2 = &b; //指针p2为常量,可以通过*p来修改b的值,但是原创 2016-06-14 13:55:39 · 366 阅读 · 0 评论 -
Effective C++--条款20:适当地用pass-by-reference-to-const代替pass-by-value
缺省状况下c++以by value的方式传递对象至函数,函数参数都是以实参的副本为初值,当传递参数时,pass-by-value的操作会导致昂贵的时间开销。 例如一个student类继承自person类: class Person { public: Person(); virtual ~Person(); //... private: std::string原创 2016-06-14 21:45:31 · 323 阅读 · 0 评论 -
《C++ Primer》读书笔记——第八章_IO库
c++语言不直接处理输入输出,而是通过一族定义在标准库中的类型来处理IO。这些类型支持从设备读取数据,向设备写入数据的IO操作,设备可以是文件、控制台窗口等。 IO库: istream(输入流)类型,提供输入操作。 ostream(输出流)类型,提供输出操作。 cin,一个istream对象,从标准输入读取数据。 cout,一个ostream对象,从标准输入读取数据。 cerr,一个o原创 2016-09-21 18:49:23 · 249 阅读 · 0 评论