虚函数的作用

来源:互联网 发布:c语言小游戏代码 编辑:程序博客网 时间:2024/06/05 02:24

虚函数的作用在于运行的时候能够正确的识别调用函数的对象是那个类的,然后正确的调用对应的函数


如果对象是基类的对象,调用的就是基类的函数,如果对象是派生类的,就调用派生类的同名函数

class Base {
public:
    virtual void fun() {
        puts("Base::fun()");
    }
};
 
class D1 : public Base {
public:
    void fun() {
        puts("D1::fun()");
    }
};
 
class D2 : public Base {
public:
    void fun() {
        puts("D2::fun()");
    }
};
 
int main() {
    Base *ptr;
    Base b;
    D1 d1;
    D2 d2;
    ptr = &b;
    ptr->fun(); // "Base::fun()"
    ptr = &d1;
    ptr->fun(); // "D1::fun()"
    ptr = &d2;
    ptr->fun(); // "D2::fun()"
}
0 0
原创粉丝点击