Base.h
#pragma
class Base { public: Base(void); ~Base(void); bool CreatClone(Base* item); char* m_baseprop1; }; |
Base.cpp
#include #include
Base::Base(void) : m_baseprop1(NULL) { }
Base::~Base(void) { }
bool Base::CreatClone(Base* item) { m_baseprop1 = item->m_baseprop1; return } |
Derived.h
#pragma #include
class Derived : public Base { public: Derived(void); ~Derived(void); char* m_devprop1; bool CreatClone(Derived* item); }; |
Derived.cpp
#include #include
Derived::Derived(void) : m_devprop1(NULL) { }
Derived::~Derived(void) { }
bool Derived::CreatClone(Derived* item) { m_devprop1 = item->m_devprop1; //基类方法的调用通常放在方法的最后。 Base::CreatClone(item);
return } |
Main.cpp
#include #include #include #include
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; } |