【发布时间】:2015-06-22 07:48:14
【问题描述】:
#include <iostream>
#include "Pizza.h"
int main() {
iFood* food;
food = new Pizza(14.0, 8);
for (int i = 0; i < 3; i++)
food->consume();
food->display();
std::cout << std::endl;
delete food;
food = new DeluxePizza(12.0, 6, "mushrooms, peppers");
for (int i = 0; i < 2; i++)
food->consume();
food->display();
std::cout << std::endl;
delete food;
}
这是我的 main.cpp 当我运行此代码时,它会显示在 iFood 上调用 delete 的警告,该警告是抽象的但具有非虚拟析构函数。
【问题讨论】:
-
#include
class iFood{ public: virtual void consume()=0;虚空显示()常量=0; }; -
你不应该在这里使用
new。 C++ 不是 Java,不要试图盲目地复制你在那里学到的东西。
标签: c++