【问题标题】:Getting error: ISO C++ forbids declaration of with no type出现错误:ISO C++ 禁止无类型声明
【发布时间】:2014-06-12 10:11:34
【问题描述】:

我收到以下错误:

ISO C++ 禁止声明没有类型的 ttTreeInsert

ISO C++ 禁止声明没有类型的 ttTreeDelete

ISO C++ 禁止声明没有类型的 ttTreePrint

int ttTree::ttTreePrint() 的原型与 ttTree 类中的任何一个都不匹配

候选人是:void ttTree::ttTreePrint()

这是我的头文件:

#ifndef ttTree_h
#define ttTree_h

class ttTree 
{
public:
  ttTree(void);
  int ttTreeInsert(int value);
  int ttTreeDelete(int value);
  void ttTreePrint(void);
  
};

#endif

这是我的 .cpp 文件:

#include "ttTree.h"

ttTree::ttTree(void)
{
  
}

ttTree::ttTreeInsert(int value)
{
}

ttTree::ttTreeDelete(int value)
{
}

ttTree::ttTreePrint(void)
{
}

谁能指出导致这些错误的原因?谢谢!

【问题讨论】:

  • 早期版本的 c++ 将非返回类型函数视为 void。但是 ISO C++ 禁止没有类型的声明,以避免程序和函数的意外行为。这里的快速解决方法是提及您正在声明的函数的适当返回类型。

标签: c++ function class constructor declaration


【解决方案1】:

你的声明是int ttTreeInsert(int value);

但是,您的定义/实现是

ttTree::ttTreeInsert(int value)
{
}

请注意,实现中缺少返回类型int。相反,它应该是

int ttTree::ttTreeInsert(int value)
{
    return 1; // or some valid int
}

【讨论】:

    【解决方案2】:

    您忘记了成员函数定义中的返回类型:

    int ttTree::ttTreeInsert(int value) { ... }
    ^^^               
    

    等等。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-09-30
      • 1970-01-01
      • 2011-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多