学习《C++程序设计》(第二版) 谭浩强 主编
第一章 C++的初步认识
1.1 从C到C++
1.2 最简单的C++程序
1.3 C++程序的构成和书写形式
1.4 C++程序的编写和实现
1.5 关于C++上机实践
1.1 从C到C++
面向对象的程序设计:Object Oriented Programming,OOP
应当指出:目前所使用的C++编译系统中,有一些是早期推出的,并未全部实现ANSI C++标准所建议的功能。
1.2 最简单的C++程序
例子:
#include<iostream> //包含头文件iostream using namespace std; //使用C++的命名空间 int main() { cout<<"this is a C++ program"; return 0; }
cout实际上是C++系统定义的对象名,称为输出流对象<<是插入运算符
标准C++要求main函数必须声明为int型。有的操作系统(如UNIX,Linux)要求执行一个程序后必须向操作系统返回一个数值。
因此,C++的处理是这样的:如果程序正常执行,则向操作系统返回数值0,否则返回数值-1
在目前使用的一些C++编译系统并未完全执行C++这一规定,如果主函数首行携程void main()也能通过
第一行#include<iostream>,这不是C++的语句,而是C++的一个预处理指令
它是一个包含指令,作用是将文件“iostream"的内容包含到该命令所在的程序文件中,替代该指令
由于这类文件都放在程序单元的开头,所以称为头文件
在程序进行编译时,先对所有的预处理命令进行处理,将头文件的具体内容代替#include指令,然后再对改程序单元进行整体编译
在早期的一些C++程序中,使用的第从C语言继承下来的函数库,在程序中用#include指令把带后缀.h的头文件包含进来,即可在本程序中使用这些函数
在C++新标准中,使用不带后缀.h的头文件,标准库中的类和函数都在"命名空间std"中声明
因此,如果程序中包含了新形式的头文件(无后缀的头文件,如iostream),必须使用using namespace std
cout语句中的endl是C++输出时的控制符,作用是换行
可以在主调函数前面先定义被调函数,也可以在主调函数中先对被调函数进行声明,然后在主函数体外定义被调函数
函数声明的位置应该在函数调用之前
在一个类中包含两种成员:数据和函数,分别称为数据成员和成员函数
在C++中,把一组数据和有权调用这些数据的函数封装在一起,组成一种称为“类”的数据结构
成员函数是用来对数据成员进行操作的
也就是说,一个类是由一批数据以及对其进行操作的函数组成的
类可以体现数据的封装性和信息隐蔽
一般情况下可以把数据设成私有,以实现信息隐蔽,而把函数设成公有
凡是被指定为公用的数据或函数,既可以被本类的成员函数调用,也可以被类外的语句调用
被指定为私有的成员,只能被本类中的成员函数所调用,而不能被类外的语句调用(除了“友元类”成员以外)
“.”是一个成员运算符,把对象和成员连接起来
由于C语言无“命名空间”,因此用带后缀.h的头文件时不必用using namespace std作声明
1.3 C++程序的结构和书写形式
1.一个C++程序可以由一个程序单元或者多个程序单元构成
每一个程序单位做为一个文件,在编译时,编译系统分别对各个文件进行编译,因此,一个文件是一个编译单元
2.在一个程序单位中,可以包括以下3个部分:
3.一个函数由两部分组成:函数首部和函数体a.预处理指令
b.全局声明部分(在函数外的声明部分)
这部分包括对用户自己定义的数据类型的声明和程序中用到的变量的定义
c.函数(实现操作的部分)
每个程序必须只有一个主函数
4.语句包括两类:声明语句和执行语句
5.一个C++程序总是从main函数开始执行的
6.注释://.......和/*.........*/
1.4 C++程序的编写和实现
1.5 关于C++上机实践1.用C++编写程序
用高级语言编写的程序属于“源程序”
C++的源程序以.cpp作为后缀(c plus plus)
2.对源程序进行编译
用编译器(complier)把源程序翻译成二进制形式的“目标程序”(Object program)
编译是以源程序文件为单位分别编译的,每一个程序单位组成一个源程序文件
如果有多个程序单位,系统就分别把它们编译成多个目标程序
(在windows系统中,目标程序以.obj作为后缀,在UNIX系统中,以.o作为后缀)
编译的作用是对源程序进行语法检查和词法检查
3.将目标文件连接
通过编译后,得到一个或多个目标文件,用系统提供的连接程序(linker)将一个程序的所有目标程序和系统的库文件以及系统提供的其他信息连接起来,
最终形成一个可执行的二进制文件,在Windows系统中,其后缀是.exe,是可以直接执行的。
4.运行程序
5.分析运行结果
本书常用Visual C++6.0 和GCC两种典型的环境