C++ Primer CH18 异常、名称空间和多重继承

C++ 可以处理的问题的范围十分广泛,从只需要一个程序员在几个小时内就能解决的小问题,到需要涉及到多个系统协作,有着百万行级别的代码量,并且需要几百个程序员在多年时间内参与的大问题(如:操作系统)。本书前面章节介绍的内容同时适合于所有这些跨度的问题。

语言还包括一些针对大的复杂系统而设计的特性。这

阅读全文 “C++ Primer CH18 异常、名称空间和多重继承”

C++ Primer CH16 模板和泛型编程

面向对象(OOP)和泛型编程(generic programming)都是处理在书写程序时未知的类型,所不同的是 OOP 处理直到运行时才知道的类型,而泛型编程则处理知道编译时才知道的类型。

当书写泛型程序时,写出来的代码与特定类型是独立的。当使用泛型程序时则需要提供类型或者值(作为泛型实参)给泛

阅读全文 “C++ Primer CH16 模板和泛型编程”

C++ Primer CH15 面向对象编程

面向对象变量建立三大概念上:数据抽象(data abstraction)、继承(inheritance)和动态绑定(dynamic binding)。继承和动态绑定在两个方面影响如何写程序:使得定义类似但不相同的类更加容易,使得用户代码可以相同的方式调用它们而忽略其中的差异。

很多应用包含相关但是

阅读全文 “C++ Primer CH15 面向对象编程”

C++ Primer CH13 拷贝控制

C++ 的核心概念就是类。C++ 类定义构造函数来控制当类对象初始化时应该做什么。类同样可以定义函数来控制如何进行拷贝、赋值、移动和销毁。在这些方面 C++ 有别于其它语言,很多其它语言并不提供控制这些方面的基础设施。本章将介绍拷贝控制方面的知识,并且将引入新标准的两个概念:右值引用(rvalue

阅读全文 “C++ Primer CH13 拷贝控制”

C++ Primer CH12 动态内存

新版本的 C++ 最重要的更新之一就是提供了更为强大的智能指针(smart pointer),智能指针是模拟指针的抽象数据结构,提供了额外的功能包括内存管理(memory management)或者界限检查(bounds checking)。这些特性在保留性能的情况下,减少了因为指针滥用导致的难以查

阅读全文 “C++ Primer CH12 动态内存”