zoukankan      html  css  js  c++  java
  • [C++] 类中的虚函数

    介绍

    本文介绍了c++中,虚函数的原理。

    正文

    首先看代码1:

    #include <iostream>
    
    using namespace std;
    
    class Animal{
    public:
        // 虚函数
        void speak(){
            cout << "animal speaking " <<endl;
        }
    };
    
    class Cat: public Animal{
    public:
        void speak(){
            cout << "cat speaking " <<endl;
        }
    };
    
    void do_speak(Animal *animal){
        animal->speak();
    }
    
    int main(){
        Animal a;
        cout << sizeof(a)<< endl;
    
        return 0;
    }
    

    打印的结果:1

    如果我们把speak函数修改成,virtual void speak之后,打印的结果:4
    它变成了指针

    原理:

    修改成代码2:

    #include <iostream>
    
    using namespace std;
    
    class Animal{
    public:
        // 虚函数
        virtual void speak(){
            cout << "animal speaking " <<endl;
        }
    };
    
    class Cat: public Animal{
    public:
        virtual void speak(){
            cout << "CAT speaking " <<endl;
        }
    };
    
    void do_speak(Animal *animal){
        animal->speak();
    }
    
    int main(){
        Cat cat;
        do_speak(&cat);
    
        return 0;
    

    成功。

  • 相关阅读:
    Go语言
    Go语言
    electron-builder vue3 用户自定义安装目录
    提取页面中的style标签内容
    px2rpx | px转rpx
    js EventBus
    select 下拉选择多个值
    keep-alive页面缓存
    js适配移动端页面
    vue日常问题记录
  • 原文地址:https://www.cnblogs.com/kykai/p/14410436.html
Copyright © 2011-2022 走看看