Skip to Content
C++语言导学(原书第2版)
book

C++语言导学(原书第2版)

by 本贾尼 斯特劳斯特鲁普
August 2021
Intermediate to advanced
450 pages
5h 35m
Chinese
Pearson
Content preview from C++语言导学(原书第2版)

4.3 抽象类型

complex和Vector这样的类型称为具体类型(concrete type),这是因为它们的表示属于定义的一部分。在这一点上,它们与内置类型很相似。相反,抽象类型(abstract type)将使用者与类的实现细节完全隔离开来。为此,我们将接口与表示分离开来,并且放弃了纯局部变量。由于我们对抽象类型的表示一无所知(甚至对其大小也不了解),所以必须从自由存储(参见4.2.2节)分配对象,然后通过引用或指针(参见1.7节、13.2.1节)访问对象。

首先,我们为Container类定义接口,这是一个比Vector更抽象的版本:

这个类是一个纯接口,是为稍后定义的特定容器设计的接口。关键字virtual的意思是“可能随后在派生类中被重新定义”。不出意料,我们将这种声明为virtual的函数称为虚函数(virtual function)。Container类的派生类应为Container接口提供具体实现。语法=0看起来有点奇怪,它说明函数是纯虚函数(pure virtual),即,Container的派生类必须定义这个函数。因此,我们不可能定义一个Container对象。例如:

Container只是作为接口出现,为具体实现operator[]()和size()函数的类提供接口。包含纯虚函数的类称为抽象类(abstract ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

软件开发实践:项目驱动式的Java开发指南

软件开发实践:项目驱动式的Java开发指南

Raoul-Gabriel Urma, Richard Warburton
管理Kubernetes

管理Kubernetes

Brendan Burns, Craig Tracey
Python机器学习案例精解

Python机器学习案例精解

Posts & Telecom Press, Yuxi (Hayden) Liu

Publisher Resources

ISBN: 9787111633280