我被分配了以下作业:
我认为我已经正确完成了步骤1和步骤2。但是,我不知道如何执行步骤3。
编辑:
我在第3步中的目标是实例化10个类型为Item的对象,例如:
item1:名称:蓝色牛仔裤,价格:24.99,数量:15
//Step 1
class Product {
private:
std::string name;
double price;
public:
Product();
Product(std::string name, double price);
virtual ~Product();
//Methods/Pure virtual methods
};
//Step 2
class Item {
private:
Product* product;
int quantity;
public:
Item();
Item(Product* product, int quantity);
~Item();
//Methods
};
答案 0 :(得分:0)
非常感谢@drescherjm和@Remy Lebeau指出:
一个人不能实例化抽象类中的对象。
一个人可以实例化派生类中的对象。
第3步的实现
//Step 3
//3.1 Deriving class Clothing from abstract class Product
class Clothing: public Product {
public:
Clothing();
Clothing(std::string name, double price);
//Methods
};
int main(){
//3.2 Instantiating an object of derived class Clothing.
Clothing c1("Blue Jeans", 24.99);
//3.3 Instantiating, an object of class Item (see Step 2 in the question)
Item i1(&c1,15);
return 0;
}