zoukankan      html  css  js  c++  java
  • 基类父类指针

    问:

    我们为什么常常定义一个基类的指针,去调用派生类的成员函数?

    答:

    利用多态

    问:

    好处在哪里 就是不用自己重写一遍某些函数吗 ,我的意思是为什么不直接定义派生类的指针呢?

    答:

    调用的时候不需要知道pBase所指的具体派生类,只要调用就Ok,这是oo的体现。
    这样,使用pBase的指针就可以针对于不同的子类用相同的逻辑去处理,减少了代码。如果不用pBase的指针,那么对于Derived1和Derived2的子类需要2套代码,还完全一样!

     

    #include<iostream>
    using namespace std;
    
    class Base
    {
    public:
        virtual void testFunc()
        {
            cout<<"Base"<<endl;
        }
    };
    
    class Derived1 :public Base
    {
    public:
        virtual void testFunc()
        {
            cout<<"Derived1"<<endl;
        }
    };
    
    class Derived2 :public Base
    {
    public:
        virtual void testFunc()
        {
            cout<<"Derived2"<<endl;
        }
    };
    
    int main()
    {
        Base* pBase = new Derived1();
        pBase->testFunc();
        cout<<endl;
    
        pBase = new Derived2();
        pBase->testFunc();
        cout<<endl;
    
    }
  • 相关阅读:
    小学生双倍快乐
    暑期随笔
    akm
    设计原型
    测试与优化
    小学生求求你别折磨程序员
    小学生快乐刷题
    枪在手,跟我走

    第一次团队作业
  • 原文地址:https://www.cnblogs.com/lihaozy/p/3048895.html
Copyright © 2011-2022 走看看