【发布时间】:2014-05-13 10:54:35
【问题描述】:
我是继承/抽象类/多态的新手。作为记录,我以前能够使用抽象类的派生对象编译和运行程序,但由于某种原因,我现在无法这样做。
这是抽象基类中的纯虚函数 声明“AerialVehicle.h”:
virtual void fly = 0; //error: variable or field 'fly' declared void
现在这里是派生类“TF18.h”
void TF18::fly()
{
cout << "\n\t--Flying--\n"
<< getName() << " is flying...\n"
<< "Wingspan: " << getWingspan() << "\n"
<< "Max Altitude: " << getMaxAlt() << "\n"
<< "Seats: " << getSeats() << "\n"
<< "Engines: " << getEngines() << "\n";
}
这个程序只是更清楚地理解这些概念的一种手段。我没有向 TF18 添加任何其他成员函数。这让我感到困惑,因为到目前为止我已经能够创建这种风格的程序。纯虚函数绝对需要返回值吗?
我正在使用带有 GNU GCC 编译器的 CodeBlocks。我也尝试过其他编译器,甚至使用各种编译器将代码复制/粘贴到 Orwell DevC++,但无济于事:(
最后,我在标题中使用了 ifndef/define/endif。
【问题讨论】:
-
如果
fly应该是一个函数,它必须是fly()。
标签: c++ inheritance polymorphism abstract-class