zoukankan      html  css  js  c++  java
  • 虚函数习题复习

     1 #include <iostream>
     2 
     3 using namespace std;
     4 
     5 class Base {
     6 public:
     7     virtual void VirtualFunc() { cout << "Base virtual" << endl; }
     8     void NonVirtualFunc() { cout << "Base non-virtual" << endl; }
     9 };
    10 
    11 class Derived : public Base {
    12 public:
    13     void VirtualFunc() { cout << "Derived virtual" << endl; }
    14     void NonVirtualFunc() { cout << "Derived non-virtual" << endl; }
    15 };
    16 
    17 int main(int argc, char *argv[])
    18 {
    19     Base base;
    20     Derived derived;
    21     Base *dPtr = &derived;
    22     Base *bPtr = &base;
    23     Derived *ptr = static_cast<Derived *>(&base);
    24     ptr->VirtualFunc();
    25     ptr->NonVirtualFunc();
    26 
    27 
    28     dPtr->VirtualFunc();
    29     dPtr->NonVirtualFunc();
    30     bPtr->VirtualFunc();
    31     bPtr->NonVirtualFunc();
    32     return 0;
    33 }

    输出:

    Base virtual

    Derived non-virtual

    Derived virtual

    Base non-virtual

    Base virtual

    Base non-virtual

    总结一句话:虚函数是谁的就是谁的,非虚函数转换成谁的就是谁的

  • 相关阅读:
    SPOJ AMR12B 720
    OUC_TeamTraining_#1 720
    Mac下安装必须软件
    spawn命令和expect
    python基础
    AndroidManifest.xml详解
    Ubuntu系统连接Android真机调试
    Android Studio 快捷键
    linux 解压/压缩命令
    sadasd
  • 原文地址:https://www.cnblogs.com/wisdomroc/p/11896176.html
Copyright © 2011-2022 走看看