c中struct
为聚合数据类型只能是这五种类型(不能有成员函数)
整型、浮点型、字符型、指针型和 无值型(void)
封装:将数据和代码捆绑在一起,避免外界干扰和不确定性访问
继承:
让某种类型获得另一个类型对象的属性和方法
多态:
同一事物表现不同事物的形态。(函数重载显示出编译的多态性,虚函数实现运行时的多态)
#include<stdio.h>
typedef void(*fun)();//这样可以直接用fun调用void(*)()的函数
struct base
{
fun _f;
};
struct derived
{
base _b;//实现继承
};
void f1()
{
printf("%s\n", "base");
}
void f2()
{
printf("%s\n", "derived");
}
void main()
{
base b;//父类对象
derived d;//子类对象
b._f = f1;
d._b._f = f2;//体现继承
base *p1 = &b;//父类指针指向父类对象
p1->_f();
base *p2 = (base*)&d;//将父类指针指向子类对象,使用强制转换
p2->_f();//指向的地址不变,所以调用子类函数<父类指针指向子类对象,实现多态>
}