如何调用包含指向抽象类B的指针的类A构造函数

时间:2019-04-16 18:10:59

标签: c++ oop object

我被分配了以下作业:

  1. 创建抽象类产品
  2. 创建包含产品(产品*产品)集合的项目类
  3. 在int main()中实例化Class Item的10个对象

我认为我已经正确完成了步骤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
};

1 个答案:

答案 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;
}