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;
    

    成功。

  • 相关阅读:
    解决input获取焦点时底部菜单被顶上来问题
    JavaScript学习笔记
    JavaScript表单验证
    js 中{},[]中括号,大括号使用详解
    陀飞轮
    娱乐天空
    左右手
    软测 学习
    git 学习
    spring boot 学习
  • 原文地址:https://www.cnblogs.com/kykai/p/14410436.html
Copyright © 2011-2022 走看看