C++ 运行期多态和编译器多态

本文探讨C++中的多态性,主要分为运行期多态和编译器多态。运行期多态基于类继承和虚函数,利用虚函数表实现动态绑定。编译器多态通过模板具现化和函数重载解析,在编译期间确定调用的函数。总结指出,静态绑定无虚函数时,调用父类函数;动态绑定则查询虚函数表调用子类函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C++多态有多种实现方式,在面对对象编程时,采用的是运行期多态,也称动态多态。在泛型编程中,多态基于模板的具现化与函数的重载解析,这种多态在编译期进行,也称编译器多态或者静态多态。

运行期多态

运行期多态归根结底就是类继承的一个特性。我们习惯于抽象出不同功能的对象的共有功能集合,在基类中将这些共有功能声明为虚函数(也称虚接口),然后由子类去重写这些虚函数,以实现多态。

class Animal
{
   
public :
    void Animal();
    virtual void shout() = 0;
};

void Animal::Animal()
{
   
    std::cout << "Constructor of Animal" << std::endl;
}

class Dog :public Animal
{
   
public:
    void Dog();
    virtual void shout(){
    cout << 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值