C++编程(3)—C++编译期多态与运行期多态

本文介绍了C++的两种多态形式:运行期多态(基于虚函数)和编译期多态(基于模板)。运行期多态允许处理异质对象集合,但增加运行开销;编译期多态通过模板实现,提高效率但可能降低可读性。文章分析了各自的优缺点并探讨了显式与隐式接口。
摘要由CSDN通过智能技术生成

点击下载素材

阅读目录
前言
运行期多态
编译期多态
运行期多态与编译期多态优缺点分析
运行期多态优点
运行期多态缺点
编译期多态缺点
关于显式接口与隐式接口

前言

今日的C++不再是个单纯的“带类的C”语言,它已经发展成为一个多种次语言所组成的语言集合,其中泛型编程与基于它的STL是C++发展中最为出彩的那部分。在面向对象C++编程中,多态是OO三大特性之一,这种多态称为运行期多态,也称为动态多态;在泛型编程中,多态基于template(模板)的具现化与函数的重载解析,这种多态在编译期进行,因此称为编译期多态或静态多态。在本文中,我们将了解:

1、什么是运行期多态
2、什么是编译期多态
3、它们的优缺点在哪

运行期多态

运行期多态的设计思想要归结到类继承体系的设计上去。对于有相关功能的对象集合,我们总希望能够抽象出它们共有的功能集合,在基类中将这些功能声明为虚接口(虚函数),然后由子类继承基类去重写这些虚接口,以实现子类特有的具体功能。典型地我们会举下面这个例子:
在这里插入图片描述

class Animal
{
   
public :
    virtual void shout() = 0;
};
class Dog :public Animal
{
   
public:
    virtual void shout(){
    cout << "汪汪!"<<endl; }
};
class Cat :public Animal
{
   
public:
    virtual void shout(){
    cout << "喵喵~"<<endl; }
};
class Bird : public Animal
{
   
public
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值