【问题标题】:new types may not be defined in a return type - C++新类型可能未在返回类型中定义 - C++
【发布时间】:2011-03-13 01:00:33
【问题描述】:

我对 C++ 的类结构感到困惑。

我有一个名为 FxMathFunctions.h 的 .h 和一个名为 FxMathFunctions.cpp 的 .cpp

.h 开头如下:

class  FxMathFunctions
{
    public:
        FxMathFunctions();
        ~FxMathFunctions();

在.cpp中

我有:

#include "FxBasicTypes.h"
#include "FxMathFunctions.h"

FxMathFunctions::FxMathFunctions() {}

FxMathFunctions::~FxMathFunctions() {}

我收到如下错误:

error: new types may not be defined in a return type
error: return type specification for constructor invalid

这一定与某个地方的定义有关,但我只是不知道这可能发生在哪里。

【问题讨论】:

  • 我假设 FxMathFunctions 在您的代码中已正确关闭,即它有一个右大括号 '}' 后跟一个分号。如果没有,我会从那里开始。
  • 除了结束分号,.h 文件必须以包含保护开头,而不是类声明。
  • @Philipp:必须有点强。 :) @JQZ:告诉我们你的部分代码然后询问整个解决方案是相当不正统的,你不觉得吗?
  • @jDOG:实际上,您应该将代码缩减为重现 same 错误的最小代码位。然后才发布那一点点。通常,您根本不需要发帖;通过消除混乱,包括您自己在内的每个人都可以更轻松地发现错误。

标签: c++ class-design compilation


【解决方案1】:

您的 .h 文件 以什么结尾?我猜你的类定义的结尾没有“;”。该类被解释为 cpp 文件中第一个函数的返回类型。

【讨论】:

    【解决方案2】:

    在类声明的末尾丢失; 可能会导致此类错误。

    【讨论】:

      【解决方案3】:

      类声明以分号结尾。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多