一、C和C++
设计思想上: C++是面向对象的语言,而C是面向过程的结构化编程语言
语法上:
C++具有封装、继承和多态三种特性(封装使代码模块化,继承扩展已存在的代码,多态的目的是为了接口重用)
C++相比C,增加多许多类型安全的功能,比如强制类型转换
C++支持范式编程,比如模板类、函数模板等
二、类和对象
类:指对象的类型。类代表了一批对象的共性和特征。抽象的,不占用内存。
对象:类的具体实例。具体的,占用储存空间。
类是对象的抽象,对象是类的具体实例。
三、内置函数
规模较小并且频繁调用的函数可以声明为内置函数。inline
如:inline max(int a,int b)。
其本质是在编译时将被调用的函数代码直接嵌入到主函数中去,执行时没有了函数的调用过程。
四、多态
多态分为两类:静态多态和动态多态
静态多态:(编译时多态性)
- 函数重载
- 运算符重载
- 函数模板template
动态多态:(运行时多态性)
- 派生类和虚函数实现运行时多态
五、i++和++i
当 i++ 和 ++i 在单条语句时,是没有区分的,都可以看做是 i=i+1;
在复合语句中,他们是有分别的。
- i++ 是先执行 i,再++;
- ++i 是先++,再执行 i
举例:
i=1;
cout << a[ i++ ] 和 cout << a[ ++i ]
- 前者是先执行 i ,再 ++ ,所以输出的是a[1]
- 后者是先 ++,再cout,所以输出的是a[2]
- 但是最终 i 都是2。
六、魔鬼数字
魔鬼数字的定义:在代码中没有具体含义的数字、字符串。
魔鬼数字主要影响了代码可读性,读者看到的数字无法理解其含义,从而难以理解程序的意图。
当程序中出现的魔鬼数字过多时,代码的可维护性将会急剧下降,代码变得难以修改,并容易引入错误。
例如:
修改后:
解决方法:用常量定义魔鬼数字。