《C++程序设计原理与实践》笔记 第7章 完成一个程序
编写程序需要不断地改进你要实现的功能及其表达方式。第6章给出了一个能够工作的计算器程序的最初版本,本章将对其进一步改进。“完成程序”意味着使程序更易于使用和维护——包括改进用户接口、做一些仔细的错误处理工作、增加一些有用的特性、重构代码使之易于理解和修改。 7.1 引言 当程序第一次“正常”运行时,你大约只完成了一半的工作。一旦程序“基本可以工作”,真正的乐趣就开始了!此时我们可以在初步版...
编写程序需要不断地改进你要实现的功能及其表达方式。第6章给出了一个能够工作的计算器程序的最初版本,本章将对其进一步改进。“完成程序”意味着使程序更易于使用和维护——包括改进用户接口、做一些仔细的错误处理工作、增加一些有用的特性、重构代码使之易于理解和修改。 7.1 引言 当程序第一次“正常”运行时,你大约只完成了一半的工作。一旦程序“基本可以工作”,真正的乐趣就开始了!此时我们可以在初步版...
接下来的两章将从一个最初不清晰的想法开始,经过分析、设计、实现、测试、再设计、再实现等步骤开发一个计算器程序,目的是帮助读者了解在编写代码的过程中如何去思考。在这个过程中将讨论程序结构、用户定义类型和输入处理。 6.1 一个问题 编写程序往往从一个问题开始,即你有一个问题,想要一个程序来帮助解决。因此理解问题是编写好程序的关键。 我们编写一个简单计算器,即“让计算机对输入的表达式做常规的...
C++支持声明和定义分离,通常的做法是将声明放在头文件中、定义放在源文件中,通过包含头文件来引入声明。多次声明一个变量或函数不会有问题,但多次定义则会导致重定义错误。下面在两种不同场景下进行分析。 1.场景1 假设头文件foo.h声明了一个全局常量A和一个函数f: extern const int A; int f(int x); a.cpp包含foo.h并定义了常量A: #inc...
1.简介 GoogleTest是由Google开发的一个C++测试框架,支持Linux、Windows和macOS操作系统,使用Bazel或CMake构建工具。 项目主页:https://github.com/google/googletest 官方文档:https://google.github.io/googletest/ 2.基本概念 断言(assertion):检查一...
本章将讨论程序的正确性、错误和错误处理。 5.1 引言 在编写程序时,错误是不可避免的。而最后的程序必须是没有错误的,至少不存在不可接受的错误。 错误的分类有很多种,例如: 编译时错误(compile-time errors):由编译器发现的错误,例如语法错误、类型错误 链接时错误(link-time errors):链接器将对象文件链接为可执行程序时发现的错误 运行时错误...
本章将介绍一些与计算相关的基本概念。 4.1 计算 程序所做的事情就是计算(compute),即接受输入、产生输出。 从编程的角度看,最重要也是最有趣的两类输入、输出是“从其他程序输入/输出”和“从程序的其他部分输入/输出”。本书后续的大部分内容可以视为后一种类型的实例:在协作完成一个大的软件时,应该如何合理地设计程序结构,并能够保证每一个子程序之间都能够正确地共享和交互数据?这是编...
本章介绍程序中的数据存储和使用的基本知识。 3.1 输入 “Hello, World!” 程序只是打印到屏幕,它不从用户那里得到输入。实际的程序通常基于我们给它的输入产生结果,而不是每次执行都做相同的事。 为了读取数据,需要在计算机内存中的某个地方放置读取的内容,这样的“地方”称为对象。对象(object)是一个某种类型(type)的内存区域,类型指定了可以放置什么样的信息。有名字的对象...
2.1 程序 为了使计算机能够做某件事,你需要在繁琐的细节上明确告诉它怎么做。对“怎么做”的描述称为程序(program),编程(programming)是书写和测试这个程序的行为。为了向计算机精确描述这些事情,我们需要一种由特定语法精确定义的语言,这种语言称为编程语言,C++是为各种编程任务而设计的编程语言。 2.2 经典的第一个程序 这是经典的第一个程序的一个版本,它在屏幕上输出 “H...
通常,只有在真正编写程序求解一个问题的过程中才会对问题本身理解透彻。 我从不会说:“先学习一个月的理论知识,然后看看你是否能使用这些理论吧。” 我们的目标是,回答那些你在编写供他人使用的高质量软件时需要考虑的问题。 简单练习(drills):你应该完成所有简单练习,如果你没有完成简单练习,就不能说完成了本书的学习。 习题(exercises):我们不期待你能完成所有习题,但请...
《C++程序设计原理与实践》(Programming – Principles and Practice Using C++)(第1版) 网站 本书网站:https://www.stroustrup.com/programming.html,其中包含书中代码、部分习题解答等材料。 目录 第0章 致读者 第1章 计算机、人与程序设计 第一部分 基本知识 第2章 Hell...