常規C++類書寫方法

  類的創建一般只留出使用接口,通過函數來獲取或者改變類的成員變量值,增加安全性。
1.頭文件

// 2010.05.14.Template.ZLY

#pragma once
class CMyClassImp
{
public:
	CMyClassImp();
	~CMyClassImp();

	CString m_strName;		// 姓名
	int m_nAge;				// 年齡
	CString m_strAddress;	// 家庭住址
};

class CMyClass
{
public:
	CMyClass(void);
	~CMyClass(void);

	// 姓名
	CString GetName() const;
	void SetName(const CString& strName);

	// 年齡
	int GetAge() const;
	void SetAge(const int nAge);

	// 家庭住址
	CString  GetAddress() const;
	void SetAddress(const CString strAddress);

private:
	CMyClassImp* m_pImp;
};

//typedef std::shared_ptr<CMyClass> CMyClassPtr;
//CMyClassPtr pClass = std::make_shared<CMyClass>(); // 定義智能指針來使用

2.源文件

#include "StdAfx.h"
#include "MyClass.h"

CMyClassImp::CMyClassImp()
	: m_nAge(0)
{

}

CMyClassImp::~CMyClassImp()
{

}

//////////////////////////////////////////

CMyClass::CMyClass(void)
{
	m_pImp = new CMyClassImp;
}


CMyClass::~CMyClass(void)
{
	if (m_pImp)
	{
		delete m_pImp;
	}
}

CString CMyClass::GetName() const
{
	return m_pImp->m_strName;
}

void CMyClass::SetName(const CString& strName)
{
	 m_pImp->m_strName = strName;
}

int CMyClass::GetAge() const
{
	return m_pImp->m_nAge;
}

void CMyClass::SetAge(const int nAge)
{
	m_pImp->m_nAge = nAge;
}

CString CMyClass::GetAddress() const
{
	return m_pImp->m_strAddress;
}

void CMyClass::SetAddress(const CString strAddress)
{
	m_pImp->m_strAddress = strAddress;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章