C实现-CPP的-多态

来源:互联网 发布:大屏幕滚动抽奖软件 编辑:程序博客网 时间:2024/06/07 15:23
#include <stdio.h>#include <stdlib.h>/**多态的本质:子类保留对父类的引用实现继承、同时通过改变父类的函数指针的值、来实现调用不同的方法。*/struct Student{void(*p)(); // 通过改变函数指针的值、来实现调用不同的方法。};struct MiddleStudent{struct Student stu;void(*p)();};struct SmallStudent{struct Student stu;void(*p)();};void middle_say(){printf("\n 中学生喜欢偶像剧!");}void small_say(){printf("\n 小学生喜欢动画片!");}void main(){struct MiddleStudent middle ;middle.p = middle_say ;   middle.stu.p = middle.p;middle.stu.p();struct MiddleStudent small ;small.p = small_say ;small.stu.p = small.p;small.stu.p();printf("\n ----------------------------");// struct Student * stu1 = &middle.stu;struct Student * stu2 = &small.stu;stu1->p();stu2->p();// 实现了多态getchar();}

0 0