随笔 - 547  文章 - 213 评论 - 417 阅读 - 107万

 

 

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;

}

posted on   今夜太冷  阅读(5852)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
历史上的今天:
2006-08-19 你的事业(工作)到了停滞期吗?
点击右上角即可分享
微信分享提示