欧美三级国产三级日韩三级_亚洲熟妇丰满大屁股熟妇_欧美亚洲成人一区二区三区_国产精品久久久久久模特

設(shè)計模式----原形模式 - 新聞資訊 - 云南小程序開發(fā)|云南軟件開發(fā)|云南網(wǎng)站建設(shè)-昆明葵宇信息科技有限公司

159-8711-8523

云南網(wǎng)建設(shè)/小程序開發(fā)/軟件開發(fā)

知識

不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價值,我們在追求其視覺表現(xiàn)的同時,更側(cè)重于功能的便捷,營銷的便利,運營的高效,讓網(wǎng)站成為營銷工具,讓軟件能切實提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序為后期升級提供便捷的支持!

您當(dāng)前位置>首頁 » 新聞資訊 » 技術(shù)分享 >

設(shè)計模式----原形模式

發(fā)表時間:2020-10-18

發(fā)布人:葵宇科技

瀏覽次數(shù):45

原形模式類似于拷貝構(gòu)造函數(shù),提供一種可以直接拷貝原對象的方法,這種方法比較簡單,就不畫類圖了,直接看一下對應(yīng)代碼:

#include <iostream>
#include <string>
using namespace std;

class Person {
public:
	virtual Person *Clone() = 0;
	virtual void Print() = 0;
};

class CppProgramer : public Person {
public:
	CppProgramer() : m_Name(""), m_Age(0), m_pAddress(NULL) {}
	CppProgramer(string name, int age, const char *pszAddr) : m_Name(name), m_Age(age), m_pAddress(new char[strlen(pszAddr)]) {

	}
	void Print() {
		cout << "C++程序員的姓名: " << m_Name << "年齡: " << m_Age << endl;
	}
	Person *Clone() {
		CppProgramer* tmp = new CppProgramer;
		tmp->m_Name = this->m_Name;
		tmp->m_Age = this->m_Age;
		int iLen = strlen(m_pAddress) + 1;
		tmp->m_pAddress = new char[iLen];
		strcpy(tmp->m_pAddress, this->m_pAddress);
		
		return(tmp);
	}
	~CppProgramer() {
		if (m_pAddress) {
			delete[] m_pAddress;
			m_pAddress = NULL;
		}

	}
private:
	string m_Name;
	char* m_pAddress;
	int m_Age;
};

int main() {
	const char* pszAddr = "中山路";
	CppProgramer cpp("YangMing", 15, pszAddr);
	Person* p = cpp.Clone();
	p->Print();

	system("pause");

	return(0);
}

(完)

相關(guān)案例查看更多