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

时间:2023-03-08 21:05:59
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;

}