C语言如何实现继承和多态
来源:互联网 发布:刘远原画网络班 编辑:程序博客网 时间:2024/06/06 07:08
使用函数指针来实现继承和多态
#include <stdio.h>#include <stdlib.h>struct Base_Vptr //虚函数表{ void(*fun1)( void*); void(*fun2)( void*);};struct Base{ struct Base_Vptr* base_vptr; //指向虚函数表的指针};void BaseFun1(){ printf( "i am BaseFun1\n" );}void BaseFun2(){ printf( "i am BaseFun2\n" );}struct Base_Vptr base_table = { BaseFun1, BaseFun2 };struct Base *newBase()//基类的构造函数{ struct Base*temp = ( struct Base*)malloc( sizeof( struct Base)); temp->base_vptr = &base_table; return temp;}//派生类struct Derived{ struct Base d; //继承Base int High;};void DerivedFun1(){ printf( "i am Derived Fun1\n" );}void DerivedFun2(){ printf( "i am Derived Fun2\n" );}struct Base_Vptr derived_table = { DerivedFun1, DerivedFun2 };struct Derived *newDerived(int h ){ struct Derived *temp = ( struct Derived*)malloc( sizeof( struct Derived)); temp->d.base_vptr=&derived_table; temp->High = h; return temp;}int main(){ struct Base*b = newBase(); b->base_vptr->fun1(( void*)b); b->base_vptr->fun2(( void*)b); struct Derived*d = newDerived(2); b = ( struct Base*)d; b->base_vptr->fun1(( void*)b); b->base_vptr->fun2(( void*)b); system( "pause" ); return 0;}
阅读全文
0 0
- 如何实现 C 语言的继承和多态
- C语言如何实现继承和多态
- C语言如何模拟C++实现继承和多态
- C语言实现继承和多态
- C语言实现继承和多态
- C语言实现继承和多态
- C语言实现继承和多态
- C语言实现继承和多态
- C语言实现继承和多态
- C语言实现继承和多态
- C语言实现继承和多态
- C 语言实现多态和继承
- c语言实现继承和多态
- c语言实现继承和多态
- C语言实现继承和多态
- C语言如何实现继承和多态,写的very nice
- 关于C语言中继承和多态的实现
- 关于C语言中继承和多态的实现
- HDU 6048 Puzzle
- Professional JS(13.4.3Mouse and Wheel/Keyboard and Text/composition/Mutation/HTML5 Events[part])
- Python-18 函数:递归是神马
- 【算法入门】深度优先搜索(DFS)
- java有哪些常用类 String的方法
- C语言如何实现继承和多态
- 集合框架复习二
- ActiveMQ持久化消息的三种方式
- C语言练习题复习
- linux下sql基本操作
- VueJS安装到入门
- HDU 4135(基本的容斥定理)
- 前端面试题以及答案
- 求二叉树中两个节点的最低公共祖先