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”[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何用getchar函数将数据存如数组?(C语言)

替换函数 - 没有重载方法错误 C# - 试图删除字符串中的部分

使用结构对两个堆栈进行排序 - 编译错误

电脑编程可以在哪里学习?

Libjpeg 错误 - 状态 205 中的不正确调用

C 语言字符串拷贝 ( 函数形参使用推荐方法 | 凡是涉及 修改指针指向 的操作一律创建新的 指针变量 执行 | 引入 辅助 局部 指针变量 )