2014-05-13 33 views
0

我是新来的继承/抽象类/多态性。为了记录,我以前可以使用抽象类中的派生对象编译和运行程序,但由于某种原因,我现在无法这样做。C++纯虚函数接收错误,“变量或字段'x'声明为void”

这里是纯虚函数,抽象基类 声明 '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添加任何其他成员函数。这令我感到困惑,因为到目前为止,我已经能够以这种风格创建节目。纯虚函数是否绝对需要返回值?

我正在使用CodeBlocks w/GNU GCC编译器。在我的头我已经试过其他的编译器,以及,甚至复制/粘贴代码奥威尔DEVC++使用各种编译器,但无济于事:(

最后,我使用IFNDEF /定义/ ENDIF。

+0

如果'fly'应该是一个函数,它必须是'飞()'。 – PlasmaHH

回答

2

你忘了括号中的函数声明

virtual void fly() = 0; 
       ^^ 
2

支架。

virtual void fly() = 0; 
+0

Bahahaha,我不能相信我做了临时工吨。谢谢! – Bizknacker