欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

c++动态陷阱

程序员文章站 2022-07-13 10:50:34
...
记录以防忘记

class base{
public:
    ........
};

class derive:public base{
public:
    void test();
};

int
main(){
    derive child;
    base *father = &child;
    father->test();//error
}

father->test()会报错。因为对于非virtual函数调用,在编译期就已经确定函数地址了,只要virtual函数调用才会触发动态调用。base类是没有test方法的,所以编译通不过。

相关标签: c++