一: 公有/私有
利用static关键字的文件作用域特性, 保证私有函数和变量不暴漏给使用者
二: 封装
C++: 封装,即隐藏对象的属性和实现细节,仅对外公开接口
实现原理还是利用static的文件作用域特性.
C++代码:
class Car {
publc:
int run(int kilometers);
private:
int data;
}
C 代码:
static int _car_data;
static int _car_run (int kilometers);
struct Car {
int (*run) (int kilometers);
};
三: 继承
四, 多态
通过函数指针
五, 还原成C风格的函数
定义一个全局变量, 然后使用宏定义成一个类函数:
定义方:
struct Car {
int (*run)(int length);
};
extern Car _car;
#define car_run _car.run
使用方:
ret = car_run(5); //使用方法与C风格的函数相同