发布时间:2013-02-06 19:02:02
Chapter 15. Object-Oriented Programming1. 增加override关键字,派生类用此可显式表明重写了挂有此关键字基类的虚函数。好像c# java早就有了,阅读性增加了不少。2. 增加final关键字,在类名后面时表明一个类不能被用作基类,在一个虚函数后面时表示派生类不可重写此虚函数。//class base finalclass base{.........【阅读全文】
发布时间:2013-02-06 17:16:09
在c++11中,一个callable object可以是函数指针、lambda表达式、重载()的某类对象、bind包裹的某对象等等,有时需要统一管理一些这几类对象,新增的function就是为此而生。function位于functional头文件,可以看做是那几类callable object的抽象表示。#include<iostream>#include<functional>using namespace std;.........【阅读全文】
发布时间:2013-02-04 12:25:10
这个绝对是新增的top特性,篇幅非常多。看着就有点费劲,总结更费劲。原来的标准当中,参数与返回值的传值形式涉及到对象的复制,传值完成后,中间产生的临时对象又会马上被销毁,某些自定义的对象或者容器有很多元素时复制的开销非常大,而且例如IO对象或unique_ptr对象也不允许复制;传址在返回值的某些场景又会有.........【阅读全文】
发布时间:2013-02-02 12:06:16
13章内容有点多,分开总结一下。1. 前面提过,在声明构造函数或考构或某运算符后面加“=delete”,表示此函数不可用。class base{public:base()= delete;base (const base&) = delete;};如果代码中有直接创建对象或使用拷贝构造函数的代码,编译会失败:error: use of deleted function 'base::base()'.........【阅读全文】