c语言实现继承和多态
2017-08-04 19:18
232 查看
继承
概念:继承机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能。这样产生新的类,称派生类。继承呈现了面向对象程序设计的层次结构,体现由简单到复杂的认知过程。多态
多态指同一个实体同时具有多种形式。它是面向对象程序设计的一个重要特征。C++中的多态性具体体现在运行和编译两个方面。运行时多态是动态多态,其具体引用的对象在运行时才能确定。编译时多态是静态多态,在编译时就可以确定对象使用的形式。同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。在运行时,可以通过指向基类的指针,来调用实现派生类中的方法。在面向对象语言中,接口的多种不同的实现方式即为多态。允许将子类类型的指针赋值给父类类型的指针。多态性在C++中都是通过虚函数 实现的。
多态:同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。在运行时,可以通过指向基类的指针,来调用实现派生类中的方法。
C++中,实现多态有以下方法:虚函数,抽象类,重载,覆盖,模版。
c++中的继承多态
#include<iostream> using namespace std; class Base { public: virtual void FunTest()//实现多态基类必须要有虚函数 { cout << "Base" << endl; } }; class Dirval :public Base { public: virtual void FunTest()//子类(virtual可以不写,但基类的virtual必须写) { cout << "Dirval" << endl; } }; void Test() { Base b;//定义一个基类对象 Dirval d;//定义一个子类对象 Base *p = &b;//定义一个基类指针指向基类对象 p->FunTest();//调用基类函数 p = &d;//指向子类对象 p->FunTest();//调用子类函数 } int main() { Test(); system("pause"); return 0; }
C语言模拟实现继承和多态
#include<stdio.h> typedef void(*FUN)();//函数指针 //C语言结构体中不能定义函数,则只能用函数指针在外部实现函数的访问 struct _Base//基类 { FUN fun;//通过函数指针访问外部函数 int a = 1; }; struct _Dirval//子类 { _Base _a;//子类定义一个基类对象可实现对基类的继承 int b = 2; }; void FunBase()//基类函数 { printf("_Base\n"); } void FunDirval()//子类函数 { printf("_Dirval\n"); } void Test() { _Base b;//定义一个基类对象 _Dirval d;//定义一个子类对象 b.fun = FunBase;//基类对象访问基类的外部函数 d._a.fun = FunDirval;//子类对象访问子类的外部函数 _Base* p = &b;//定义一个基类指针指向基类对象 p->fun();//调用基类的同名函数 p = (_Base*)&d;//基类指针指向子类对象 p->fun();//调用子类同名函数 } int main() { Test(); system("pause"); return 0; }
相关文章推荐
- C语言实现继承和多态
- C语言实现C++的继承和多态
- C语言模拟实现C++的继承与多态
- C语言实现C++的封装继承与多态
- BREW中接口——C语言实现继承和多态
- C语言实现封装、继承和多态
- 关于C语言中继承和多态的实现
- C语言模拟实现C++的继承多态
- C语言如何模拟C++实现继承和多态
- C语言也可以“面向对象”—— C语言实现封装、继承和多态
- 用c语言实现面向对象的封装继承和多态
- 软件设计本质论(Essential Design) —白话面向对象 (转注:关于c语言实现封装继承多态的一堆博文)
- C语言实现封装、继承和多态
- C语言实现封装、继承和多态
- C语言如何实现继承和多态
- C语言模拟实现C++的继承与多态示例
- C语言模拟实现C++的继承多态
- c语言中继承和多态的简单实现
- C语言模拟实现C++中的继承和多态
- C语言实现封装、继承和多态