我有一个家庭作业,其中有一个基类 Package 和两个派生类 OvernightPackage 和 TwoDayPackage。在问题的某个时刻,我需要根据用户输入创建这两种类型之一的对象。这显然行不通:
if (shippingOption == OVERNIGHT) {
OvernightPackage packageObject( // Parameters entered here //);
}
else if (shippingOption == TWODAY) {
TwoDayPackage packageObject( // Parameters entered here //);
}
一旦那些 if 语句执行,我就超出了那些对象的范围,并且不能使用 packageObject。 This post帮助我理解如果我只是创建具有不同参数的特定类型的对象,我该怎么做。但是作业上的要求是 TwoDayPackage 和 OvernightPackage 需要是不同的类。
我将如何着手执行此操作(除了对 if 语句中的对象执行我需要的操作之外)?
编辑:感谢大家帮助解决问题!
最佳答案
一种方法是使用指针:
Package *packageObject = NULL;
if (shippingOption == OVERNIGHT) {
packageObject = new OvernightPackage( // Parameters entered here //);
}
else if (shippingOption == TWODAY) {
packageObject = new TwoDayPackage( // Parameters entered here //);
}
关于if 语句中的 C++ 范围问题 : create one of two objects,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9625656/