事實上,你會需要一個Courier
類,你應該將COverNightPackage
類中存儲指向這個Courier
類。你只是想確保當沒有Courier
時這個指針被設置爲NULL
。要做到這一點,你應該爲你的COverNightPackage
創建兩個構造函數。爲每個構造函數使用初始值設定項,以確保指向Courier
類的指針初始化爲NULL
或指向Courier
類。
class Courier;
class COverNightPackage: public CPackages {
public:
COverNightPackage()
: m_courier(NULL)
{ }
COverNightPackage(Courier* courier)
: m_courier(courier)
{ }
private:
Courier* m_courier;
}
或者,您也可以做到這一點使用單個構造函數的NULL
class Courier;
class COverNightPackage: public CPackages {
public:
COverNightPackage(Courier* courier = NULL)
: m_courier(courier) { }
private:
Courier* m_courier;
}
默認參數。如果調用構造函數不帶參數,Courier
指針會被初始化爲NULL
是的,製作一個「Courier」課是必需的。 –
這是http://programmers.stackexchange.com/的問題。 – JoulinRouge
存儲一個指向「courier」對象的指針。如果它是NULL,則沒有快遞。如果它不是NULL,那麼'courier'將指向一個包含詳細信息的類(公司名稱,地址等) – stackptr