My C++(一)
来源:互联网 发布:在淘宝怎么买电棍 编辑:程序博客网 时间:2024/06/10 02:58
从C到C++
计算机诞生初期,人们要使用计算机必须用机器语言或汇编语言编写程序。世界上第一种计算机高级语言诞生于1954年,它是FORTRAN语言。先后出现了多种计算机高级语言。其中使用最广泛、影响最大的当推BASIC语言和C语言。BASIC语言是1964年在FORTRAN语言的基础上简化而成的,它是为初学者设计的小型高级语言。C语言是1972年由美国贝尔实验室的D.M.Ritchie研制成功的。它不是为初学者设计的,而是为计算机专业人员设计的。大多数系统软件和许多应用软件都是用C语言编写的。但是随着软件规模的增大,用C语言编写程序渐渐显得有些吃力了。C++是由AT&T Bell(贝尔)实验室的Bjarne Stroustrup博士及其同事于20世纪80年代初在C语言的基础上开发成功的。C++保留了C语言原有的所有优点,增加了面向对象的机制。C++是由C发展而来的,与C兼容。用C语言写的程序基本上可以不加修改地用于C++。从C++的名字可以看出它是C的超集。C++既可用于面向过程的结构化程序设计,又可用于面向对象的程序设计,是一种功能强大的混合型的程序设计语言。
1、C++对C的“增强”的两个方面
- (1) 在原来面向过程的机制基础上,对C语言的功能做了不少扩充。
- (2) 增加了面向对象的机制。
注:面向对象程序设计,是针对开发较大规模的程序而提出来的,目的是提高软件开发的效率。
不要把面向对象和面向过程对立起来,面向对象和面向过程不是矛盾的,而是各有用途、互为补充的。
1.1、最简单的C++程序
#include <iostream>using namespace std;int main(){ cout << "My name is C++ \n"; return 0;}
用main代表“主函数”的名字。每一个C++程序都必须有一个 main 函数。main前面的int的作用是声明函数的类型为整型。“return 0;”作用是向操作系统返回一个零值。如果程序不能正常执行,则会自动向操作系统返回一个非零值,一般为-1。函数体是由大括号{ }括起来的。本例中主函数内只有一个以cout开头的语句。注意C++所有语句最后都应当有一个分号。再看程序的第1行“#include ”,这不是C++的语句,而是C++的一个预处理命令,它以“#”开头以与C++语句相区别,行的末尾没有分号。#include 是一个“包含命令”,它的作用是将文件iostream的内容包含到该命令所在的程序文件中,代替该命令行。文件iostream的作用是向程序提供输入或输出时所需要的一些信息。iostream是i-o-stream 3个词的组合,从它的形式就可以知道它代表“输入输出流”的意思,由于这类文件都放在程序单元的开头,所以称为“头文件”(head file)。在程序进行编译时,先对所有的预处理命令进行处理,将头文件的具体内容代替 #include命令行,然后再对该程序单元进行整体编译。程序的第2行“using namespace std; ” 的意思是“使用命名空间std”。C++标准库中的类和函数是在命名空间std中声明的,因此程序中如果需要用到C++标准库(此时就需要用#include命令行),就需要用“using namespace std; ”作声明,表示要用到命名空间std中的内容。
在初学C++时,对本程序中的第1,2行可以不必深究,只需知道: 如果程序有输入或输出时,必须使用“#include ”命令以提供必要的信息,同时要用“using namespace std;” ,使程序能够使用这些信息,否则程序编译时将出错。
- 简单例子(1):求a和b两个数之和。
// 求两数之和 (本行是注释行)#include <iostream> //预处理命令using namespace std; //使用命名空间stdint main() //主函数首部{ //函数体开始 int a, b, sum; //定义变量 cin >> a >> b; //输入语句 sum = a + b;//赋值语句 cout << "a + b = " << sum << endl; //输出语句 return 0; //如程序正常结束,向操作系统返回一个零值} //函数结束
- 简单例子(2):给两个数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; //如程序正常结束,向操作系统返回一个零值} //主函数结束
- 简单例子(3):包含C++类的程序
#include <iostream>// 预处理命令using namespace std;class Student// 声明一个类,类名为Student{ private: // 以下为类中的私有部分 int num; // 私有变量num int score; // 私有变量score public: // 以下为类中的公用部分 void setdata() // 定义公用函数setdata { cin >> num; // 输入num的值 cin >> score; // 输入score的值 } void display() // 定义公用函数display { cout << "num = " << num << endl; // 输出num的值 cout << "score =" << score << endl;//输出score的值 };}; // 类的声明结束Student stud1, stud2; //定义stud1和stud2为Student类的变量,称为对象int main()// 主函数首部{ stud1.setdata(); // 调用对象stud1的setdata函数 stud2.setdata(); // 调用对象stud2的setdata函数 stud1.display(); // 调用对象stud1的display函数 stud2.display(); // 调用对象stud2的display函数 return 0;}
参考文献:C++_面向对象程序设计(谭浩强)