我正在尝试创建一个程序,用于接受食品订单并打印出来。我有一个基类
这是我的错误信息。(注意:
Food
,其中包含一个纯虚函数。类Food
有两个子类Pizza
和Dessert
。我想在main
中创建一个Food
数组,以便当客户点餐Pizza
或Dessert
时,它将被存储在Food
数组中。但每次尝试时,我都会遇到错误。如果我想使用循环遍历客户点的每个物品,应该如何将这两个项目组合在一起呢?
以下是我的代码:int main()
{
Dessert d("brownie");
Pizza p("BBQ delux");
Food array[2] = {d,p};
}
这是我的错误信息。(注意:
get_set_price()
和print_food()
是我在基类中定义并在两个子类中实现的纯虚函数。)main.cpp:37:14: error: invalid abstract type ‘Food’ for ‘array’
Food array[2] = {d,p};
In file included from main.cpp:4:0:
Food.h:5:7: note: because the following virtual functions are pure within ‘Food’:
class Food
^
Food.h:20:15: note: virtual void Food::get_set_price()
virtual void get_set_price()=0;
^
Food.h:27:15: note: virtual void Food::print_food()
virtual void print_food()=0;
^
main.cpp:37:22: error: cannot allocate an object of abstract type ‘Food’
Food array[2] = {f,o};
^
不得有对引用的引用,不得有引用的数组,也不得有引用的指针。" -> 所以,引用不是一个选择!
- undefinedstd::reference_wrapper
来解决这个问题。 :) - undefined