[基础] 虚函数

Posted 小尾巴君

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[基础] 虚函数相关的知识,希望对你有一定的参考价值。

1. 虚函数会导致的结果:直接上个经典例子...

class A {
public:
    void a() {
        cout<<"A.a"<<endl;
    }
    virtual void b() {
        cout<<"A.b"<<endl;
    }
};
class B: public A {
public:
    void a() {
        cout<<"B.a"<<endl;
    }
    void b() {
        cout<<"B.b"<<endl;
    }
};
int main(int argc, const char * argv[]) {
    A *a1 = new A();
    B *b = new B();
    A *a2 = new B();
    a1->a(); // A.a
    a1->b(); // A.b
    b->a(); // B.a
    b->b(); // B.b
    a2->a(); //A.a 非虚函数,根据基类
    a2->b(); //B.a 虚函数,根据子类
    return 1;
}

2. 机制解释

XXX

以上是关于[基础] 虚函数的主要内容,如果未能解决你的问题,请参考以下文章

C++笔记--面向对象(OOP)编程基础--虚函数纯虚函数多继承

[基础] 虚函数

片段通信问题(尝试调用虚方法)

C++基础语法梳理:虚函数及其相关知识点

c++ 虚函数 如何调父类 而非子类

C++ 纯虚函数和抽象类