ITPub博客

首页 > 应用开发 > IT综合 > C++虚函数bug

C++虚函数bug

IT综合 作者:dongyu2013 时间:2014-03-27 18:48:04 0 删除 编辑

点击(此处)折叠或打开

  1. class Base{
  2. private:
  3.     virtual void f() { cout<<\"Base::f\"<<endl; }
  4.     virtual void g() { cout<<\"Base::g\"<<endl; }
  5. };

  6. class DeriveChild:public Base{

  7. };
  8. typedef void (*Fun)(void);
  9. void main()
  10. {
  11.    DeriveChild d;
  12.    Fun pFun=(Fun)*((int*)*(int*)(int*)(&d)+0);
  13.    pFun();
  14.    pFun=(Fun)*((int*)*(int*)(int*)(&d)+1);
  15.    pFun();
  16. }

点击(此处)折叠或打开

  1. class B
  2. {
  3. public:
  4.     virtual void fun()
  5.     {
  6.         cout<<\"Base fun called\"<<endl;
  7.     }
  8. };

  9. class D:public B
  10. {
  11. private:
  12.     virtual void fun()
  13.     {
  14.      cout<<\"driver fun called\"<<endl;
  15.     }
  16. };
  17. void main()
  18. {
  19.     B *p=new D();
  20.     p->fun();
  21. }


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29012686/viewspace-1131003/,如需转载,请注明出处,否则将追究法律责任。

上一篇: Mysql源码分析2
请登录后发表评论 登录
全部评论

注册时间:2013-12-25

  • 博文量
    263
  • 访问量
    208130