首页 > 代码库 > c到c++(常问知识点的总结系列)

c到c++(常问知识点的总结系列)

c++有更加丰富的内容和严格的类型检查,比如语法上多了一些东西,理念上多了面向对象(以对象为目标) 的思想,还有模版的概念。当然c++也可以面向过程编程。

C语言规定是先把变量定义完再定义函数,C++语言中可以随时定义变量,随用随定。

 

面向过程编程:程序=算法+数据结构

功能为基础,数据和对数据的操作分离,采用自顶向下的方式进行设计,用对应的程序模块解决每一个简单的子问题,在一定控制下,综合众多独立功能的模块组合为大模块。

优点:结构清晰,模块化强

缺点:代码维护性查,可重用性差,强依赖,牵一发动全身。

 

面向对象编程:程序=对象+消息 ,对象=数据+操作

数据为基础,数据和对数据的操作封装为类,数据本身对外隐藏,以类的对象作为程序的基本元素,通过向对象发消息,让对象启动相关的方法完成功能。

优点:提高代码维护性,可重用性,增加数据安全,可靠性强

 

类是抽象的,对象是具体的类的实例化,他们相互依存。类的属性叫类的数据成员,表示一类对象共有的静态特性,数据成员的行为叫成员函数,表示一类对象共有的动态特性。

 

类也是一种类型,该类型有数据成员,还有对数据成员的操作(成员函数)。类的对象就是属于类类型的变量而已。

 

类中的数据成员和成员函数的具体实现都被封装隐藏,只有成员函数的原型声明对外公布(接口),main函数只能通过类的对象调用类的接口函数,间接修改类的数据成员,而不能直接去修改数据成员(封装的体现)。

 

向对象发送同样的消息,可能指向不同的代码,产生不同的结果,这就是多态性

 

可以在已有类的基础上,再定义子类,增加一些新的属性和行为,这就是继承。

 

在定义新类时,把已有类的对象作为新类的数据成员,这叫类的聚合关系。

 

最好使用已有的类,面向对象提倡这样做,增加代码重用性,使得开发周期短,效率高

 

面向对象就是围绕对类的定义和使用展开的。

 

c++的类只在编译时期(源代码里)存在,不在内存里出现,类的实例(对象)和普通变量一样,会出现在内存,并占据空间。

 

面向对象三大特性:封装,继承,多态

封装:第一大特征,提供安全和可靠性。类不真正占用内存,封装的单位实际上是属于某个类的对象

 

继承:第二大特征,提供代码可重用性,继承使得基类(父类)的数据成员和成员函数被子类(派生类)重用,在子类里增加一些新成员函数和数据成员(改造),避免重复开发,减少代码量和冗余度。

继承的类别:单一继承和多重继承

单一继承:子类只从一个基类继承而来。

多重继承;子类同时从多个基类继承而来。

 

多态性:第三大特征,一种行为对应着多个不同的实现方法。

多态分两类:静态多态(编译时的多态,函数重载和运算符重载实现),动态多态(运行时多态,需要继承,虚函数,基类指针或者引用实现)

意义:用同一个接口实现不同操作

 

输入输出的变化及注释方式

有自己的输入输出流cout和cin,头文件不用.h,c++有自己的流类库,安全,方便,也兼容c的输入输出方式。

 1 #include <iostream>//必须包含,才能使用输入输出 2 using namespace std;//必须包含std名字空间 3 int main(void) 4 { 5     int a; 6     cin >> a;//cin标准输入流,代表输入设备,后面只能跟变量,不用考虑数据类型 7     //允许用户输入连串的数据依次给各个变量赋值,两个数据之间用空格、回车、tab键隔开 8     //在输入字符串的时候尤其注意这点 9     char s[100];10     cin >> s;//此种方法不能读入含有空格的字符串11     //使用cin.getline实现输入带空格的字符串12     cin.getline(s,99);13 14     cout << "a = " << a << endl;//cout标准输出流,代表输出设备,后面能跟常量,变量,表达式15     //新增换行符endl,等价\n,还有刷新缓存的作用16     return 0;17 }

>>和<<都保留了c中的移位功能

 

新增了单行注释(标准c也有了)//

可以嵌套,嵌套//或者/**/都行,而/**/注释不能嵌套/**/,只可以嵌套// 

c到c++(常问知识点的总结系列)