第一章 C++的初步认识
1.1从C到C++
1.C++对C的增强便现在两个方面:
(1)在原来基于过程的机制基础上,对C语言的功能做了不少扩充
(2)增加了面向对象的机制
1.2最简单的C++程序
1.标准c++要求main函数必须声明为int型:
有的操作系统(如UNIX,Linux)要求执行一个程序后必须向操作系统返回一个数值。因此,C++的处理是这样的:
如果程序正常执行,则像操作系统返回数值0,否则返回数值-1。目前使用的有的C++编译系统并未完全执行这一规定,如果主函数首页写成void main()也能通过,在本书中的所有例题都按C++规定,写成int main(),希望读者也能养成这个习惯,一面在编译时通不过。只要记住,在main前面加int,同时在main函数的最后加一个语句“return 0;”即可(p2)
2.包含类的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;
}
1.3 C++程序的基本结构:
通常由声明部分、主函数部分、函数定义部分组成。
输入输出头文件改为iostream.h,如果头文件去掉**.h即为iostream**,则需要指明命名空间,如:using namespace std;
即 # include <iostream.h>
等同于 # include <iostream.h> using namespace std;
main() 可以返回整数值或不返回值(返回类型为void)。
引入类:
①在一个类中包含两种数据成员:
数据(如变量变量num,score)和函数(如setdata函数和diaplay函数),分别成为数据成员和成员函数。
在C++中把一组数据和有权调用这些数据的函数封装在一起,组成一种称为“类(class)”的数据结构。一个类是由一批数据以及对其操作的函数组成的。
②类可以体现数据的封装性和信息隐蔽,信息隐蔽是C++的一大特点。
1.4 C++程序的结构和书写形式(P12)
1.一个C++程序可以有一个程序单位或多个程序单位构成。每一个程序单位作为一个文件。在程序编译时,编译系统分性别对各个文件进行编译,因此,一个文件是一个编译单位。
2.在一个程序单位中,可以包括以下三个部分
①预处理指令
即引入包、命名空间等指令。
②全局声明部分
包括对用户自己定义数据类型的声明。
③函数
实现操作的部分。
3.一个函数由两个部分组成
①函数首部
函数名字那一行
②函数体
·局部声明部分
需要运用函数时的声明部分
·执行部分
4.语句包括两类
①声明语句:非执行语句
②执行语句:用来实现用户的指定操作
5.一个C++程序总是从main函数开始执行的,但main()函数不一定是程序中第一个被执行的函数,所有全局对象的构造函数都是先于main()函数执行的。
6.类是C++新增加的重要的数据类型。
7.注释:
①行注释://
②段注释:/* …… */
C++程序文件:
头文件:.h .hpp
源文件: .cpp
程序的编写、运行、得到结果有以下一些步骤:
1.编写 .cpp作为后缀 的源程序
2.对源程序进行编译,将源程序变为二进制的目标程序,因为计算机只能识别和执行由0、1组成的二进制指令,不难识别和执行用高级语言写的指令。必须通过编译器的软件,把源程序翻译成二进制形式的目标程序。
3. 文件连接,将目标程序和系统库文件以及系统提供的其他信息连接起来,形成一个.exe为后缀的二进制文件,是可以直接执行的。
4. 运行程序
5. 分析运行结果
习题
4.请说明编辑、编译、连接的作用。在编译后得到的目标文件为什么不能直接运行?
解:编译是以源程序文件为单位进行的,而一个完整的程序可能包含若干个程序文件,在分别对他们编译之后,得到若干个目标文件(后缀一般为**.obj**),然后要将它们连接为一个整体。此外,还需要与编译系统提供的标准库连接,才能生成一个可执行文件(后缀为.exe)。不能直接运行后缀为.obj的目标文件,只能运行后缀为.exe的可执行文件。
1.请根据你的了解,叙述C++的特点。C++对C有哪些发展?(百度搜的)
①支持数据封装和数据隐藏
在C++中,类是支持数据封装的工具,对象则是数据封装的实现。C++通过建立用户定义类支持数据封装和数据隐藏。
在面向对象的程序设计中,将数据和对该数据进行合法操作的函数封装在一起作为一个类的定义。对象被说明为具有一个给定类的变量。每个给定类的对象包含这个类所规定的若干私有成员、公有成员及保护成员。
完好定义的类一旦建立,就可看成完全封装的实体,可以作为一个整体单元使用。类的实际内部工作隐藏起来,使用完好定义的类的用户不需要知道类是如何工作的,只要知道如何使用它即可。
②支持继承和重用
在C++现有类的基础上可以声明新类型,这就是继承和重用的思想。通过继承和重用可以更有效地组织程序结构,明确类间关系,并且充分利用已有的类来完成更复杂、深入的开发。新定义的类为子类,成为派生类。它可以从父类那里继承所有非私有的属性和方法,作为自己的成员。
③支持多态性
采用多态性为每个类指定表现行为。多态性形成由父类和它们的子类组成的一个树型结构。在这个树中的每个子类可以接收一个或多个具有相同名字的消息。
当一个消息被这个树中一个类的一个对象接收时,这个对象动态地决定给予子类对象的消息的某种用法。多态性的这一特性允许使用高级抽象。
继承性和多态性的组合,可以轻易地生成一系列虽然类似但独一无二的对象。由于继承性,这些对象共享许多相似的特征。由于多态性,一个对象可有独特的表现方式,而另一个对象有另一种表现方式。
2.一个C++程序由哪几个部分构成的?其中的一部分分别起什么作用?
①预处理指令
②全局声明部分
③函数
————————————————
版权声明:本文为CSDN博主「于十二JAC」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_59312484/article/details/120159380
————————————————
版权声明:本文为CSDN博主「于十二JAC」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_59312484/article/details/120159380
————————————————
版权声明:本文为CSDN博主「于十二JAC」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_59312484/article/details/120153505
————————————————
版权声明:本文为CSDN博主「于十二JAC」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_59312484/article/details/120153505