设计模式6-原型模式-C++

原型模式可以理解成克隆模式或者深拷贝模式。

对自身状态的完整复制

class testModel
{
public:
	testModel(int var, char* pch, vector<string> vstr)
		: m_ivar(var)
		, m_pch(new char(strlen(pch)+1))
		, m_vstr(vstr)
	{
		strcpy(m_pch, pch);
	}

	testModel(const testModel& rval)
	{
		this->m_ivar = rval.m_ivar;
		this->m_pch = new char(strlen(rval.m_pch) + 1);
		strcpy(this->m_pch, rval.m_pch);
		this->m_vstr = rval.m_vstr;
	}

	testModel* clone()
	{
		return new testModel(*this);
	}
private:
	int m_ivar;
	char* m_pch;
	vector<string> m_vstr;
};

猜你喜欢

转载自blog.csdn.net/u010196624/article/details/88718118