0.4 开发简介

原文出自http://www.learncpp.com/cpp-tutorial/04-introduction-to-development/

在我们编写并执行第一个程序之前,我们应该更多的了解关于程序开发的一些内容.下面简单的给出了具体步骤:

  1. 定义要解决的问题
  2. 设定解决方案
  3. 编写程序实现解决方案
  4. 编译程序
  5. 连接对象文件
  6. 测试和调试项目

1. 定义要解决的问题

这一步骤是要确定你将要解决什么问题。将你想要编写的程序的各种初始想法整合到一起,是一件即简单又复杂的事。从概念上来讲,它是相当简单的。你所需要做的就是将你的想法很好的定义,为下一步做准备。

 

2. 确定将如何解决问题

这一步骤的关键在于“如何”,如何解决在第一步中整合到一起的问题。这也是在软件开发过程中最容易被忽略的一步。这个问题的难点在于从解决一个问题的很多方式中判断出哪些是好的,哪些是坏的。很多时候,一个程序员会得到一个想法,然后马上开始坐下编写该解决方案的代码。这经常回到时产生的解决方案落到一个坏的范畴。

 

一般来讲,良好的解决方案具有以下特征:

* 它们通常是直截了当的

* 它们具有良好的编写规范

* 它们容易被扩展(添加没有在预设范围内的新的特征)

* 它们是模块化的

 

问题主要集中在第三项——它们容易被扩展和第四项——它们是模块化的。没有使用大量的计划,也有可能生产出直截了当的和具有良好编写规范的程序,但是扩展和模块化的需求在软件设计中没有充分的计划,将会是一项艰巨的挑战。

 

考虑到扩展性,当你坐下来开始编写代码的时候,你常常会有这么个想法“我想要这样做”,但是你从来不会考虑到明天你也许会有另一个想法,想要那样做。研究表明,整个项目中只有20%的时间使用在编写程序上的。其它的80%的时间用来调试程序,纠正错误,往程序中添加新的特征。因此,在你编写代码前应该花费更多一点的时间考虑解决问题的最好的方案,以及为以后的工作做怎样的计划,这样能够显著的减少你项目途中大量的时间和麻烦。

 

模块化能够使得代码具有更好的可理解性和可重复利用性。没有良好模块化的代码很难进行调试和维护,在后期的扩展中也具有很大的困难。关于模块化,我们在将来会谈论更多。

 

3. 编写程序实现解决方案

为了编写程序,我们需要两样东西:首先,我们需要一种编程语言的知识,那时我们编写这个教程的目的。其次,我们需要一个编辑器。使用任何一个你想要的文本编辑器去编写程序都是可以的,如Windows下的notepad和linux下的gedit。但是,我们强烈的建议你使用一个为了代码编辑而设计的编辑器。

 

一个标准的为了代码编写而设计的编辑器具有以下特征,能够使得程序的编写更加简单:

1) 行号。当编译器提供错误时,行号是十分有用的。标准的编译器错误会显示"error, line 64”。没有显示行号的编辑器,需找第64行是非常困难的。

2) 语法突出和着色。语法突出和着色改变了你的程序不同部分的颜色,能够使得你的程序的结构变得更加清晰。

3) 一种清晰的字体。非编程类字体往往很难清晰的区别数字0和字母O,或者是数字1,字母l和字母I。良好的编程类字体能够很好的区别这些符号,确保意外的无用。

 

你的C++程序应该被命名为name.cpp,name指的是你的程序文件的名称。注意有些人使用扩展名.cc来取代.cpp,但是我们建议你使用.cpp。

 

另外需要注意的是,很多复杂的C++项目都有很多.cpp文件。尽管你将会创建的大多数项目仅仅拥有一个.cpp文件,它也可能写成有很多.cpp文件的单个项目。

 

4. 编译程序

为了编译一个项目,我们需要一个编译器。编译器的工作可以分为两部分:

1) 检查你的项目,确保它符合C++语言的语法规则。

2) 将你写的代码作为输入,输出机器语言的对象文件。对象文件标准命名为name.o或name.obj。如果你的项目中有5个.cpp文件,那么编译后将获得5个对象文件。

Compile

举例说明,大多数Linux和Mac OS X操作系统具有g++的C++编译器。使用下面的命令来编译一个文件:

"g++" –c file1.cpp file2.cpp file3.cpp *

将会产生file1.o, file2.o, file3.o三个文件。-c的意思是“只编译”,告诉g++只产生.o文件。

 

其他的编译器在Linux,Windows等操作系统中也适用。我们将在下一节讨论安装编译器。Makefile是一个高级话题,要讨论它们可以写一整本的书。我们在此不讨论它。

 

5. 链接对象文件

链接器将项目的所有对象文件整合到一起形成单个的可执行文件。

Link

除了项目的对象文件,链接器还包含了运行时库的文件。C++语言本身是非常小和简单的。但是,它结合了被你的项目利用的可选组建的库,以及这些组件在运行库的支持下才能运行。举个例子来说,如果你想要在屏幕上输出一些东西,你的程序包含了特殊的命令,用来告诉编译器,你想要使用I/O库。

 

当链接器成功链接了所有的对象文件,你将会得到一个可执行文件。

 

另外,用g++来举个使用链接器的例子:

g++ –o prog file1.o file2.o file3.o

-o告诉g++我们想要将file1.o,file2.o,file3.o三个文件执行产生名字为——prog的可执行文件。

编译和链接命令结合到一起时如下:

g++ –o prog file1.cpp file2.cpp file3.cpp

这将直接产生名字为——prog的可执行文件。

 

6. 测试和调试项目

这是一个有趣的,充满希望的部分!你可以运行你的程序,查看是否生成与你预期一样的结果。如果没有,那么就需要进行调试,我们很快会更详细地讨论调试。

 

注意步骤3,4,5,6都包含在软件中。你可以使用独立的程序实现各个部分,当然也可以使用集成开发环境,它把各个功能就集成到了一起。使用标准的集成环境,你将拥有具有行号和语法高亮的代码编辑器。即使你的项目中包含多个源文件,IDE也能够自动编译链接你的程序生成可执行文件。当你需要调试你的程序的时候,你可以使用内置的调试器。而且,IDE包括了很多的很有帮助的编辑特征,比如综合性帮助,名字自动完成,类继承浏览,和一些版本控制。

在下一节,我们将会讨论安装和使用IDEs。

你可能感兴趣的:(开发)