1、计算机语言要处理的两个概念:数据和算法。
数据是程序使用和处理的信息,而算法是程序使用的方法。
2、C语言和C++语言编程方法的区别。
C语言使用的是机构化编程(structured programming);而C++语言使用的是OOP(面向对象编程)。
☆OOP强调的是数据。
☆OOP设计理念:设计与问题的本质特征相对应的数据格式。
3、C++和通用编程
通用编程(generic programming)是C++支持的另一种编程模式。二者的区别在于OOP强调的是编程的数据方面,而通用编程强调的是算法方面。
4、编写一个C++程序并运行起来的大体步骤
a.使用文本编辑器编写程序,并将其保存到文件中,这个文件就是程序的源代码。
b.编译源代码。
c.将目标代码与其他代码链接起来。
源代码——编译器——目标代码——(启动代码-库代码)链接程序——可执行代码
5、源代码扩展名
UNIX C、cc、cxx、c
GNU C、cc、cxx、cpp、c++
Borland Cpp
Watcom cpp
Microsoft Visual C++ cpp、cxx、cc
6、编译和链接
A、UNIX的编译和链接
UNIX系统的C++编译器,使用命令CC来启动。
例如:要编译源代码文件spiffy.C,则应在UNIX下面输入编译命令: 注:spiffy adj.好看的、漂亮的
CC spiffy.C
如果程序没有错将会生成 spiffy.o 的目标代码文件,接下里编译器自动将目标代码文件传递给系统链接程序,该程序将代码与库代码结合起来,生成一个可执行文件。默认情况下,可执行文件为a.out。
如果只使用一个源文件,链接程序还将删除spiffy.o文件,因为这个文件不再需要了。要运行该程序,只需要输入可执行文件的文件名即可:
a.out
注意:新的可执行文件a.out将覆盖已有的a.out(这是因为可执行文件占据了大量空间,因此覆盖旧的可执行文件有助于降低存储需求。)不过如果想保留可执行,只需要使用UNIX的mv命令来修改执行文件的文件名即可。
与C语言中一样,C++中,程序也可以包含多个文件,在这种情况下,可以通过在命令行上列出的全部文件来编译:
CC my.C precious.C 注:precious adj.宝贵的、珍贵的
如果有多个源代码,则编译器不会删除目标代码文件。这样,如果只修改了my.C 文件,则可用以下命令重新翻译该程序:
CC my.C precious.o
这将重新翻译my.C文件,并将它与前面编译的precious.o文件链接起来。
注意:如果要访问数学函数库中定义的函数,必须在命令行中加上-lm标记:
CC usingmath.C -lm
B、Linux的编译和链接
Lniux中最常用的编译器是个g++,g++的工作方式跟标准UNIX编译器相似。另一种选择就是Comeeau,Comeeau编译器提供了最完备、最严格的C++标准实现。
CC spiffy.cxx
这将生成一个可执行文件a.out。
有些版本可能要求链接C++库:
g++ spiffy.cxx -lg++
要编译多个源文件,只需要将它们全部放到命令行中即可:
g++ my.cxx precious.cxx
这将生成一个名为a.out的可执行文件和两个目标代码文件my.o和precious.o。如果接下来修改了其中某个源代码文件,如my.cxx,则可以使用my.cxx和precious.o来重新编译:
g++ my.cxx precious.o
C、Windwos命令行编译器
GNU C++编译器的MS-DOS版本名为gpp。
Borland C++BuildingX个人版。
要使用gpp编译器,首先需要打开一个MS-DOS窗口。要编译名为great.cpp的源代码文件,请在提示符下输入命令:
gpp great.cpp
若编译成功,则可得到一个名为a.exe的可执行文件。
要使用Borland在线编译器,首先需要打开一个MS-DOS窗口。要编译名为great.cpp的源代码文件,请在提示符下输入命令:
bcc32 great.cpp
若编译成功,则可得到一个名为great.exe的可执行文件。
D、Windows编译器
Windows下主要使用Microsoft Visual C++、Visual Studio.NET、Borland,每个编译器的区别较小。
创建好工程后,需要对程序进行编译和链接。IDE通常提供了多个菜单选项,如Compile(编译)、Build(建立)、Make(生成)、Build All(全部建立)、Link(链接)、Execute(执行)和Run(运行),不过同一个IDE中不一定包含所有这些选项。
○Compile通常意味着对当前打开的文件中的代码进行编译。
○Build和Make通常意味着编译工程中所有源代码文件的代码。这通常是一个递增过程,也就是说如果工程包含3个文件,而只有其中一个文件被修改,则只重新编译该文件。
○Build All通常意味着重新编译所有的源代码文件。
○Link意味着(如前所述)将编译后的源代码与所需的库代码组合起来。
○Run或Execute意味着运行程序。通常如果你还没有执行前面的步骤,Run将在运行程序之前完成这些步骤。
如果违反了语言规则,编译器将会生成错误消息,指出错误存在的问题行。改正错误时,应首先改正第一个错误。
注意:程序能够通过某个编译器的编译并不意味着它是合法的C++程序,同样,程序不能通过某个编译器的编译也并不意味着它是非法的C++程序。
通常,IDE运行在辅助窗口中运行程序。程序执行完毕后,有些IDE将关闭该窗口,而有些IDE则不关闭。在某些关闭窗口的IDE中,为查看输出,必须在程序的最后加上一些代码:
cin.get(); //add this statement 注:statement n.声明
cin.get(); //and maybe this, too
return 0;
}
cin.get()语句读取下一次键击,因此上述语句让程序等待,直到按下Enter键,如果程序在其常规输入后留下一个没有被处理的键击,则第二条语句是必须的。