[英]C++ derived classes
在弄清楚如何进行我的作业时遇到一些麻烦。 该分配正在处理包对象。我们被告知有一个名为CPackages
的基类,以及一个CPackages
派生的两个类COverNightPackage
和CTwoDayPackage
。 很好,我可以做到。
我遇到的问题是通宵包裹可能没有快递。 如果需要快递,则需要记录详细信息,例如公司名称,地址等。 如果包裹需要快递,则在调用显示所有包裹的详细信息时,将不得不说该包裹是否需要一个。 也将有另一个菜单选项显示所使用快递的所有详细信息。
添加信使的最佳方法是什么? 进行快递课吗? 我已经坚持了几天,以前没有做过类似的事情。
是的,您确实需要快递课程。 现在告诉您的班级是否需要快递,您有两种方法。 您可以在类中创建一个构造函数,该构造函数将Courier类对象作为null。
#include <iostream>
using namespace std;
class {
public:
Courier();
};
Courier::Courier(){
};
class COverNightPackage {
public:
COverNightPackage(Courier* obj);
};
COverNightPackage::COverNightPackage(Courier* obj){
if(obj == NULL){
cout<<"Courier is null"<<"\n";
}else{
cout<<"Courier is not null"<"\n"; \\ Store package info here
}
};
int main() {
Courier* o2 = new Courier();
COverNightPackage* o1 = new COverNightPackage(NULL);
COverNightPackage* o3 = new COverNightPackage(o2);
return 0;
}
现在,您可以根据需要存储其价值。 在显示值时,您可以检查courier class是否为null。
第二种方法是将Courier类对象保留在您的类中,并提供设置器以帮助用户在运行时设置值。 希望它能对您有所帮助:-)
确实,您将需要一个Courier
类,并且应该在COverNightPackage
类中存储一个指向该Courier
类的指针。 您只需要确保没有Courier
时将此指针设置为NULL
。 为此,您应该为COverNightPackage
创建两个构造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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.