c++动态陷阱_C/C++_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > C/C++ > c++动态陷阱

c++动态陷阱

 2013/11/14 20:47:27  z32556601  程序员俱乐部  我要评论(0)
  • 摘要:记录以防忘记classbase{public:........};classderive:publicbase{public:voidtest();};intmain(){derivechild;base*father=&child;father->test();//error}father->test()会报错。因为对于非virtual函数调用,在编译期就已经确定函数地址了,只要virtual函数调用才会触发动态调用。base类是没有test方法的,所以编译通不过。
  • 标签:c++ 陷阱
记录以防忘记

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方法的,所以编译通不过。

发表评论
用户名: 匿名