C/C++基本语法,入门及提高(3)

来源:互联网 发布:linux高性能计算集群 编辑:程序博客网 时间:2024/06/08 02:11
> 虚函数和多态,封装与继承
多态就是要通过基类接口来使用派生类,如果基类还需要知道派生类的信息……

C++ 语言中自带面向对象支持,如封装、继承、多态等面向对象的基本特征。 C 原本是面向过程的语言,自身没有内建这些特性,但我们还是可以利用 C 语言本身已有的特性来实现面向对象的一些基本特征。接下来我们就一一来细说封装、继承、多态、纯虚类等面向对象特性在 C 语言中如何实现,并且给出实例。

封装在 C++ 语言中有 protected 、 private 关键字在语言层面上支持,而 C 语言中没有这些。 C 有结构体( struct ),其实可以实现封装和隐藏。虚函数是 C++ 里面最有意义的一个特性,是多态的基础.在 C 中,用结构体内的函数指针和 C++ 的成员函数对应, C 的这种方式,所有函数都天生是虚函数(指针可以随时修改哦)。

常说的重载大概有三种含义:
 其一,函数重载,指函数名字一样,参数个数、类型不一样的函数声明和实现。由于 C 编译器的缘故,不支持。不过这个影响不大。
 其二,重定义或者说覆盖,指派生类中定义与基类签名一样(名字、返回值、参数完全一样)的非虚函数,这样派生类的中的函数会覆盖基类的同签名函数,通过成员操作符访问时无法访问基类的同签名函数。
 其三,虚函数重写,指在派生类中实现基类定义的虚函数或纯虚函数。虚函数是实现多态的关键,可以在结构体中使用函数指针来表达,但要完全实现,也很麻烦。
原创粉丝点击