您的位置:首页 > 编程语言 > C语言/C++

c++动态陷阱

2013-11-14 14:35 176 查看
记录以防忘记

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方法的,所以编译通不过。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: