0.4--C++开发简介[译]
在编写和执行第一个 C++ 程序之前,我们需要更详细地了解 C++ 程序是如何开发的。这是一个概述简单方法的图形:

第 1 步:定义您想要解决的问题
这一步是“做什么”,您要弄清楚要解决什么问题。提出您想要编程的初步想法可能是最简单的步骤,也可能是最困难的步骤。但从概念上讲,它是最简单的。您所需要的只是一个可以明确定义的想法,然后您就可以为下一步做好准备了。
这里有一些例子:
- “我想编写一个程序,允许我输入多个数字,然后计算平均值。”
- “我想编写一个程序来生成二维迷宫并让用户在其中移动。如果用户到达终点,他们就获胜。”
- “我想编写一个程序,读取股票价格文件并预测股票会上涨还是下跌。”
第 2 步:确定您将如何解决问题
这一步是“怎么做”,您确定如何解决步骤 1 中提出的问题。这也是软件开发中最容易被忽视的步骤。问题的关键在于,解决问题的方法有很多种——然而,有些解决方案是好的,有些是坏的。很多时候,程序员会得到一个想法,坐下来,立即开始编写解决方案。这通常会生成属于不良类别的解决方案。
通常,好的解决方案具有以下特征:
- 它们很简单(不会过于复杂或令人困惑)。
- 它们都有详细说明(特别是围绕所做的任何假设或限制)。
- 它们是模块化构建的,因此以后可以重用或更改某些部分,而不会影响程序的其他部分。
- 它们很强大,可以在发生意外情况时恢复或提供有用的错误消息。
闲聊一句
bug 一词最早由托马斯·爱迪生 (Thomas Edison) 在 1870 年代首次使用!不过,这个术语在 20 世纪 40 年代流行起来,当时工程师发现一只真正的飞蛾卡在早期计算机的硬件中,导致短路。报告错误的日志和这只飞蛾现在都是史密森美国历史博物馆的一部分。可以在这里查看。
各种研究表明,在复杂的软件系统上,程序员实际上只有 10-40% 的时间花在编写初始程序上。另外 60-90% 用于维护,其中包括调试(消除错误)、更新以应对环境变化(例如,在新的操作系统版本上运行)、增强功能(进行细微更改以提高可用性或功能) ,或内部改进(以提高可靠性或可维护性) 。
因此,为了拯救自己,值得你花一些额外的时间(在开始编码之前)思考解决问题的最佳方法、你所做的假设以及你如何规划未来。路上会花费很多时间和麻烦。
我们将在以后的课程中更多地讨论如何有效地设计问题的解决方案。
第3步:编写程序
为了编写程序,我们需要两件事:首先,我们需要编程语言的知识——这就是这些教程的目的!其次,我们需要一个文本编辑器来编写和保存我们编写的程序。我们使用 C++ 指令编写的程序称为源代码(通常简称为代码)。可以使用任何您想要的文本编辑器编写程序,甚至是像 Windows 的记事本或 Unix 的 vi 或 pico 这样简单的东西。
在基本文本编辑器中输入的程序将如下所示:
#include <iostream>
int main()
{
std::cout << "Here is some text.";
return 0;
}
不过,我们强烈建议您使用专为编程而设计的编辑器(称为代码编辑器)。如果您还没有,请不要担心。我们将很快介绍如何安装代码编辑器。
专为编码而设计的典型编辑器具有一些使编程变得更加容易的功能,包括:
- 行编号。当编译器给我们一个错误时,行编号很有用,因为典型的编译器错误会指出:一些错误代码/消息,第 64 行。如果没有显示行号的编辑器,查找第 64 行可能会很麻烦。
- 语法突出显示和着色。语法突出显示和着色会更改程序各个部分的颜色,以便更容易识别程序的不同组件。
- 一种明确的固定宽度字体(通常称为“等宽字体”)。非编程字体通常很难区分数字 0 和字母 O,或者数字 1、字母 l(小写 L)和字母 I(大写 i)。一种好的编程字体将确保这些符号在视觉上有所区别,以确保不会意外地使用一个符号来代替另一个符号。所有代码编辑器都应默认启用此功能,但标准文本编辑器可能不会。使用固定宽度字体(所有符号具有相同的宽度)可以更轻松地正确格式化和对齐代码。
下面是一个具有行编号、语法突出显示和固定宽度字体的 C++ 程序示例:
#include <iostream>
int main()
{
std::cout << "Here is some text.";
return 0;
}
请注意,这比无高亮显示的版本更容易理解。我们在本教程中展示的源代码将同时具有行编号和语法高亮显示,以使代码更易于理解。
为高级读者准备的
由于源代码是使用 ASCII 字符编写的,因此编程语言使用一定量的 ASCII 技术来表示数学概念。例如,
≠不是 ASCII 字符集的一部分,因此编程语言通常使用!=来表示数学不等式。一些编程字体,例如 Fira Code,使用连字将这种“技术”组合回单个字符。例如,Fira 代码将显示
≠(使用与两字符版本相同的宽度),而不是显示!=。有些人发现这更容易阅读,而另一些人则更喜欢坚持对底层字符进行更字面的解释。
您编写的程序通常命名为 something.cpp ,其中 something 替换为您为程序选择的名称(例如calculator、hi-lo、etc... 等)。 .cpp 扩展名告诉编译器(和您)这是一个包含 C++ 指令的 C++ 源代码文件。请注意,有些人使用扩展名 .cc (或 .cxx )而不是 .cpp ,但我们建议您使用 .cpp 。
最佳实践
将您的代码文件命名为
something.cpp,其中something是您选择的名称,.cpp是指示该文件是 C++ 源文件的扩展名。
另请注意,许多复杂的 C++ 程序都有多个 .cpp 文件。尽管您最初创建的大多数程序只有一个 .cpp 文件,但编写具有数十或数百个 .cpp 文件的单个程序是可能的。
一旦我们编写了程序,下一步就是将源代码转换为我们可以运行的代码,然后看看它是否有效!我们将在下一课中讨论这些步骤 (4-7)。
浙公网安备 33010602011771号