C ++接收纯虚函数错误,“变量或字段'x'声明为void”[关闭]
Posted
技术标签:
【中文标题】C ++接收纯虚函数错误,“变量或字段\'x\'声明为void”[关闭]【英文标题】:C++ Receiving error with pure virtual function, "variable or field 'x' declared as void" [closed]C ++接收纯虚函数错误,“变量或字段'x'声明为void”[关闭] 【发布时间】: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()
。
【参考方案1】:
你忘记了函数声明中的括号
virtual void fly() = 0;
^^
【讨论】:
以上是关于C ++接收纯虚函数错误,“变量或字段'x'声明为void”[关闭]的主要内容,如果未能解决你的问题,请参考以下文章
替换函数 - 没有重载方法错误 C# - 试图删除字符串中的部分
C 语言字符串拷贝 ( 函数形参使用推荐方法 | 凡是涉及 修改指针指向 的操作一律创建新的 指针变量 执行 | 引入 辅助 局部 指针变量 )