您的位置:首页 > 编程语言 > C语言/C++

设计模式之原型模式(C++实现)

2016-05-26 19:18 471 查看
原型模式其实就是从一个对象再创建另一个对象,并且不需要知道任何创建的细节。其实就相当于拷贝。

/*********************************************************************Copy.h*****************************************************************/

#include <iostream>
#pragma once;
using namespace std;
class Copy
{
int n,m;
public:
int *p;
Copy()
{
};
Copy(const Copy& copy)
{
n = copy.n;
m = copy.m;
p = new int;
*p = *(copy.p);
}
void SetNumber(int a,int b)
{
n=a;
m=b;
}
Copy* Clone()
{
return new Copy(*this);
}
void show()
{
cout<<"Number is "<<n<<" and "<<m<<endl;
cout<<"p is "<<*p<<endl;
}
};


/*********************************************************************man.cpp*****************************************************************/

#include "Copy.h"

int main()
{
Copy *myCopy = new Copy;
myCopy->SetNumber(10,20);
int p =25;
int *q = &p;
myCopy->p = q;
myCopy->show();
Copy *myCopy1 =  myCopy->Clone();
delete myCopy;
myCopy = NULL;
myCopy1->show();
getchar();
return 0;
}
输出:

Number is 10 and 20

p is 25

Number is 10 and 20

p is 25

//即使myCopy指针被销毁了,依然不会影响拷贝的值
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: