• c++子类调用基类方法的一个例子


     

     

    Base.h

    #pragma once

     

    class Base

    {

    public:

        Base(void);

        ~Base(void);

        bool CreatClone(Base* item);

        char* m_baseprop1;

    };

     

    Base.cpp

    #include "StdAfx.h"

    #include "Base.h"

     

    Base::Base(void)

    : m_baseprop1(NULL)

    {

    }

     

    Base::~Base(void)

    {

    }

     

    bool Base::CreatClone(Base* item)

    {

        m_baseprop1 = item->m_baseprop1;

        return false;

    }

     

    Derived.h

    #pragma once

    #include "base.h"

     

    class Derived :

        public Base

    {

    public:

        Derived(void);

        ~Derived(void);

        char* m_devprop1;

        bool CreatClone(Derived* item);

    };

     

    Derived.cpp

    #include "StdAfx.h"

    #include "Derived.h"

     

    Derived::Derived(void)

    : m_devprop1(NULL)

    {

    }

     

    Derived::~Derived(void)

    {

    }

     

    bool Derived::CreatClone(Derived* item)

    {

        m_devprop1 = item->m_devprop1;

    //基类方法的调用通常放在方法的最后。

        Base::CreatClone(item);

     

        return false;

    }

     

    Main.cpp

    #include "stdafx.h"

    #include <string>

    #include <windows.h>

    #include "Derived.h"

     

    int _tmain(int argc, _TCHAR* argv[])

    {

     

        Derived* d = new Derived();

        d->m_baseprop1 = "aa";

        d->m_devprop1 = "bb";

     

        Derived* d2 = new Derived();

        d2->CreatClone(d);

          

        

        system("pause"); //这里打断点跟踪,发现d的m_baseprop1和m_devprop1都克隆给了d2

        return 0;

    }

  • 相关阅读:
    复杂对象创建终结者(Builder Pattern)
    创建型模式特立独行的两位大侠
    工厂模式(Factory)
    MAC 相关
    iOS 地图相关
    iOS字体相关
    App跳转系统设置界面
    Mac 模拟慢速网络
    Thread1:EXC_BAD_ACCESS 错误
    iOS 统计App 的代码总行数
  • 原文地址:https://www.cnblogs.com/time-is-life/p/5786454.html
Copyright © 2020-2023  润新知