打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
c++简单的虚函数测试

from http://andylin02.iteye.com/blog/1019847

2011.04

Cpp代码 
  1. #include <iostream>  
  2. using namespace std;  
  3.   
  4. class A  
  5. {  
  6. public:  
  7.     A()  
  8.     {  
  9.     }  
  10.   
  11.     virtual ~A()  
  12.     {  
  13.     };  
  14.   
  15. public:  
  16.     virtual void fun()  
  17.     {  
  18.         cout << "A::fun()" << endl;  
  19.     }  
  20.   
  21.     virtual void fun2()  
  22.     {  
  23.         cout << "A::fun2()" << endl;  
  24.     }  
  25.   
  26.     void test()  
  27.     {  
  28.         cout << "A::test()" << endl;  
  29.         test2();  
  30.         fun2();  
  31.     }  
  32.   
  33.     void test2()  
  34.     {  
  35.         cout << "A::test2()" << endl;  
  36.     }  
  37.   
  38. };  
  39.   
  40. class B:public A  
  41. {  
  42. public:  
  43.     B()  
  44.     {  
  45.     }  
  46.   
  47.     virtual ~B()  
  48.     {  
  49.     }  
  50.   
  51. public:  
  52.     virtual void fun()  
  53.     {  
  54.         cout << "B::fun()" << endl;  
  55.         test();  
  56.     }  
  57.   
  58.     virtual void fun2()  
  59.     {  
  60.         cout << "B::fun2()" << endl;  
  61.     }  
  62.   
  63.     void test1()  
  64.     {  
  65.         cout << "B::test1()" << endl;  
  66.         test();  
  67.     }  
  68.   
  69.     void test2()  
  70.     {  
  71.         cout << "B::test2()" << endl;  
  72.     }  
  73. };  
  74.   
  75. int main()  
  76. {  
  77.     cout << "========== use pointer =============" << endl;  
  78.     A* pa = new B();  
  79.     pa->fun();  
  80.     delete pa;  
  81.     cout << endl << endl;  
  82.   
  83.     cout << "========== use object =============" << endl;  
  84.     B b;  
  85.     b.test1();  
  86.   
  87.     return 0;  
  88. }  
 

 

执行结果

 

========== use pointer =============

B::fun()

A::test()

A::test2()

B::fun2()

 

 

========== use object =============

B::test1()

A::test()

A::test2()

B::fun2()

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
C++中重载、重写(覆盖)和隐藏
利用C 模板,代替虚函数,实现类的静态多态性(加入性能测试部分) - woaidongmao - C 博客
C 面向对象编程入门:构造函数与析构函数7
含有虚函数的类sizeof大小
覆盖(重写) vs 重载 vs 重定义
继承、多态、重载和重写 - Express158的日志 - 网易博客
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服