OOP_由C到C++

OOP第一课

C语言的局限

类型检查机制相对较弱,使得程序中的一些错误不能在编译时由编译器检查出来。

C语言本身没有支持代码重用的语言结构

不适合开发大型程序,当程序的规模达到一定的程度时,程序员很难控制程序的复杂性。

C++的特点

C++继承了C的优点,并有自己的特点,主要有:

全面兼容C,C的许多代码不经修改就可以为Cpp所用,用C编写的库函数和实用软件可以用于Cpp。

用C++编写的程序可读性更好,代码结构更为合理,可直接在程序中映射问题空间结构。

生成代码的质量高,运行效率高。

从开发时间、费用到形成软件的可重用性、可扩充性、可维护性和可靠性等方面有了很大提高,使得大中型的程序开发项目变得容易得多。

支持面向对象的机制,可方便的构造出模拟现实问题的实体和操作。

C++的程序特征 例1.1 输出一行字符: “This is a C++ program.”。

程序如下:

#include <iostream> //包含头文件iostream using namespace std; //使用命名空间std int main( ) { cout<<″This is a C++ program.″; return 0; }

在运行时会在屏幕上输出以下一行信息:
This is a C++ program.

用main代表“主函数”的名字。每一个C++程序都必须有一个 main 函数。main前面的int的作用是声明函数的类型为整型。程序第6行的作用是向操作系统返回一个零值。如果程序不能正常执行,则会自动向操作系统返回一个非零值,一般为-1。

函数体是由大括号{}括起来的。本例中主函数内只有一个以cout开头的语句。注意C++所有语句最后都应当有一个分号。

再看程序的第1行“#include”,这不是Cpp的语句,而是Cpp的一个预处理命令,它以“#”开头以与Cpp语句相区别,行的末尾没有分号。

include 是一个“包含命令”,它的作用是将文件iostream的内容包含到该命令所在的程序文件中,代替该命令行。文件iostream的作用是向程序提供输入或输出时所需要的一些信息。

iostream是i-o-stream3个词的组合,从它的形式就可以知道它代表“输入输出流”的意思,由于这类文件都放在程序单元的开头,所以称为“头文件” (head file)。在程序进行编译时,先对所有的预处理命令进行处理,将头文件的具体内容代替#include命令行,然后再对该程序单元进行整体编译。

程序的第2行“using namespace std;”的意思是“使用命名空间std”。Cpp标准库中的类和函数是在命名空间std中声明的,因此程序中如果需要用到Cpp标准库(此时就需要用#include命令行),就需要用“using namespace std;”作声明,表示要用到命名空间std中的内容。

在初学C++时,对本程序中的第1,2行可以不必深究,只需知道: 如果程序有输入或输出时,必须使用“#include ”命令以提供必要的信息,同时要用“using namespace std;”,使程序能够使用这些信息,否则程序编译时将出错。

例1.2 求a和b两个数之和 // 求两数之和 (本行是注释行) #include <iostream> //预处理命令 using namespace std; //使用命名空间std int main( ) //主函数首部 { //函数体开始 int a,b,sum; //定义变量 cin>>a>>b; //输入语句 sum=a+b; //赋值语句 cout<<″a+b=″<<sum<<endl; //输出语句 return 0; //如程序正常结束,向操作系统返回一个零值 } //函数结束

本程序的作用是求两个整数a和b之和sum。

第1行“//求两数之和”是一个注释行,Cpp规定在一行中如果出现“//” ,则从它开始到本行末尾之间的全部内容都作为注释。

例1.3 给两个数x和y, 求两数中的大者 #include <iostream> //预处理命令 using namespace std; int max(int x,int y) //定义max函数,函数值为整型,形式参数x, y为整型 { //max函数体开始 int z; //变量声明,定义本函数中用到的变量z为整型 if(x>y) z=x; //if语句,如果x>y, 则将x的值赋给z else z=y; //否则,将y的值赋给z return(z); //将z的值返回,通过max带回调用处 } //max函数结束 int main( ) //主函数 { //主函数体开始 int a,b,m; //变量声明 cin>>a>>b; //输入变量a和b的值 m=max(a,b); //调用max函数,将得到的值赋给m cout<<″max=″<<m<<′\\n′; //输出大数m的值 return 0; //如程序正常结束,向操作系统返回一个零值 } //主函数结束

本程序包括两个函数:主函数main和被调用的函数max。

程序运行情况如下:

18 25 ↙ (输入18和25给a和b)

max=25 (输出m的值)

注意输入的两个数据间用一个或多个空格间隔,不能以逗号或其他符号间隔。

在上面的程序中,max函数出现在main函数之前,因此在main函数中调用max函数时,编译系统能识别max是已定义的函数名。如果把两个函数的位置对换一下,即先写main函数,后写max函数,这时在编译main函数遇到max时,编译系统无法知道max代表什么含义,因而无法编译,按出错处理。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpzsgy.html