欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

设计模式-原型模式

程序员文章站 2022-06-12 20:23:25
...

运用场景:
需要实现将一个类复制给另一个类,并利用其功能;

代码实现:

#include<iostream>

using namespace std;

class Prototype
{
public:
	virtual Prototype* clone() = 0;
};

class ConcreteClass :public Prototype
{
public:
	virtual Prototype* clone()
	{
		ConcreteClass* temp = new ConcreteClass;
		*temp =  *this; //此处涉及到深复制问题,若该类涉及到指针问题注意构造深度复,防止访问野指针
		return temp;
	}
};

int main()
{
	Prototype* p = nullptr;
	ConcreteClass* c = new ConcreteClass;
	p = c->clone();

	return system("pause");
}