事实上,你会需要一个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