用C语言模拟实现C++多态
来源:互联网 发布:linux查看hba卡型号 编辑:程序博客网 时间:2024/06/04 18:14
c++的多态:
代码如下:
#include<iostream>using namespace std;class A{ virtual void fun() { cout << "A:fun()" << endl; } int a;};class B :public A{ virtual void fun() { cout << "B:fun()" << endl; } int b;};void test1()//测试代码{ A _a; B _b; A* p = &_a; p->fun(); p = &_b; p->fun();}int main()//主函数{ test1(); system("pause"); return 0;}
c语言模拟实现的多态:
代码如下:
typedef void(*FUN)();//函数指针struct _A//父类{ FUN _fun;//由于C语言中结构体不能包含函数,故只能用函数指针在外面实现父类的对象调用父类的同名函数 int _a;};struct _B//子类{ _A _a_;//在子类中定义一个基类的对象即可实现对父类的继承 int _b;};void _fA(){ printf("_A:_fun()\n");}void _fB(){ printf("_B:_fun()\n");}void test2(){ _A _a1;//父类创建_a1对象 _B _b1;//子类创建_b1对象 _a1._fun = _fA;//父类的对象调用父类的同名函数 _b1._a_._fun = _fB;//子类的对象调用子类的同名函数 _A* p2 = &_a1;//定义一个父类指针指向父类的对象 p2->_fun();//调用父类的同名函数 p2 = (_A*)&_b1;//让父类指针指向子类的对象,由于类型不匹配所以要进行强转 p2->_fun();//调用子类的同名函数}int main(){ test2(); system("pause"); return 0;}
0 0
- 用C语言模拟实现C++多态
- C语言模拟实现继承、多态
- C语言模拟实现C++多态
- 模拟实现C语言库函数
- C语言:模拟实现memmove
- C语言:模拟实现memcpy
- C语言:模拟实现strcpy
- c语言模拟实现memmove
- 【C语言】模拟实现memmove
- 【C语言】模拟实现strstr
- C语言 模拟实现memmove
- c语言模拟实现strcat
- 模拟实现strcpy(C语言)
- 模拟实现strstr(c语言)
- C语言-模拟实现strcpy
- C语言-模拟实现strcat
- c语言模拟实现strcpy
- [c语言] 模拟实现c语言库函数atoi
- 本地yum搭建 selinx
- vb.net 教程 5-13 图像处理之像素处理 8-3
- C语言实现学生管理系统
- hdu 2049 不容易系列之(4)——考新郎
- 线性表(2)双向链表
- 用C语言模拟实现C++多态
- hdu 1466 计算直线的交点数 dp
- shell脚本获取输出到终端的所有信息
- 贪心算法基础之独木舟问题 51nod 贪心教程
- Maven常用命令
- c/c++整理--位运算与嵌入式编程(3)
- Lintcode47 Majority Number II solution 题解
- RxJS异步通信之combineLatest和Zip
- [编程之美-04]字符串的全排列