Skip to Content
C++程序设计:原理与实践(基础篇)(原书第2版)
book

C++程序设计:原理与实践(基础篇)(原书第2版)

by 本贾尼 斯特劳斯特鲁普
August 2021
Intermediate to advanced
450 pages
9h 36m
Chinese
Pearson
Content preview from C++程序设计:原理与实践(基础篇)(原书第2版)

习题

1.修改计算器程序,允许名字中出现下划线。

2.提供赋值操作符=,以便在let定义变量后能够修改其值。试讨论赋值操作符的用处以及可能引起的问题。

3.提供命名常量——不允许更改其值。提示:在Variable中增加一个用于区分常量和变量的成员,并根据该成员判断set_value()是否允许执行。如果允许用户定义常量(而不是计算器程序中预定义的pi和e那样的常量),必须增加一个符号,用户可用其表达常量定义,例如用const表示常量定义:const pi=3.14。

4.get_value()、set_value()、is_declared()和declare_name()等函数都操作全局变量var_table。定义一个Symbol_table类,其中一个成员是vector<Variable>类型的var_table,成员函数为get()、set()、is_declared()和declare(),并使用该类重新编写计算器程序。

5.修改Token_stream::get()函数,在读到换行时返回单词print。这就需要寻找空格并对换行('\n')进行特殊处理。可以使用标准库函数issapce(ch),当ch为空格时返回true。

6.每个程序都应该具有给用户提供帮助信息的功能,修改计算器程序,当用户输入H(大小写均可)时能够显示帮助信息。

7.将命令符q和h分别改为quit和help。

8.7.6.4节给出的文法是不完整的(我们提醒过你不要过分依赖注释),没有定义语句序列,例如4+4;5-6;,也不包括7.8节对文法所做的改进。修改文法,并为注释添加你认为必要的内容。

9.为计算器程序提出三种本章没有提及的改进,并实现其中的一种。

10.修改计算器程序,使其仅仅能处理整数,并在发生上溢和下溢时给出错误信息。提示:利用narrow_cast(见7.5节)。 ...

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

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

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

本贾尼 斯特劳斯特鲁普
管理Kubernetes

管理Kubernetes

Brendan Burns, Craig Tracey
Python编程入门与实战

Python编程入门与实战

Posts & Telecom Press, Fabrizio Romano

Publisher Resources

ISBN: 9787111562252