zoukankan      html  css  js  c++  java
  • 未完待续


    1
    #include <iostream> 2 #include<typeinfo> 3 #include<vector> 4 5 using namespace std; 6 7 class Base{ 8 public: 9 virtual void fun(){cout << "Base::fun ";} 10 }; 11 class Derived : public Base{ 12 public: 13 void fun(int i){cout << "Derived the i = " << i << endl;} 14 }; 15 class Sunzi : public Derived{ 16 public: 17 void fun(){cout << "in Sunzi ";} 18 }; 19 20 int main() 21 { 22 Derived de; 23 de.fun(1); 24 //de.fun(); //error 25 Sunzi sun; 26 sun.fun(); 27 Base *ba = &sun; 28 ba->fun(); 29 return 0; 30 }

     1 #include <iostream>
     2 #include<typeinfo>
     3 #include<vector>
     4 
     5 using namespace std;
     6 
     7 class Base{
     8 public:
     9     virtual void fun(){cout << "Base::fun
    ";}
    10 };
    11 class Derived : public Base{
    12 public:
    13     void fun(){cout << "in Derived
    ";}
    14     void fun(int i){cout << "Derived the i = " << i << endl;}
    15 };
    16 class Sunzi : public Derived{
    17 public:
    18     void fun(){cout << "in Sunzi
    ";}
    19     void fun(int i){cout << "Sunzi the i = " << i << endl;}
    20 };
    21 
    22 int main()
    23 {
    24     Derived *de = new Derived();
    25     Derived de2;
    26     Base *ba;
    27     Sunzi sun;
    28 //
    29     de->fun(1);
    30     de->fun(); //error
    31 
    32     ba = &de2;
    33     ba->fun();
    34 
    35     sun.fun();
    36 
    37     ba = &sun;
    38     ba->fun();
    39 
    40     de = &sun;
    41     de->fun();
    42     de->fun(1);
    43     return 0;
    44 }

    #include <iostream>
    #include<typeinfo>
    #include<vector>
    
    using namespace std;
    
    class Base{
    public:
        virtual void fun(){cout << "Base::fun
    ";}
    };
    class Derived : public Base{
    public:
        using Base::fun;    //using solve redefine
        void fun(int i){cout << "Derived the i = " << i << endl;}
    };
    class Sunzi : public Derived{
    public:
        void fun(){cout << "in Sunzi
    ";}
    };
    
    int main()
    {
        Derived de;
        de.fun(1);
        de.fun(); //ok
        Sunzi sun;
        sun.fun();
        Base *ba = &sun;
        ba->fun();
        return 0;
    }

    #include <iostream>
    #include<typeinfo>
    #include<vector>
    
    using namespace std;
    
    class Base{
    public:
        virtual void fun(){cout << "Base::fun
    ";}
        virtual void fun(int i){cout << "Base:: i = " << i << endl;}
    };
    class Derived : public Base{
    public:
        void fun(){cout << "in Derived
    ";}
        void fun(int i){cout << "Derived the i = " << i << endl;}
    };
    
    int main()
    {
        Base *ba;
        Derived de;
        de.fun(1);
        de.fun(); //ok
    
        ba = &de;
        ba->fun();
        ba->fun(1);
    
        return 0;
    }

  • 相关阅读:
    c/c++字符串传递
    从一个小程序明白new和delete的奇特现象
    Linux下构造函数string需要注意的问题
    字符串转time_t
    CentOS7基础建站指南(笔记)
    图与搜索
    面向的对象编程的小猫腻
    多线程编程
    生产者消费者模式-Java实现
    Java-代理模式的理解
  • 原文地址:https://www.cnblogs.com/CreatorKou/p/9056124.html
Copyright © 2011-2022 走看看