获得" ISO C ++禁止声明......"错误。?

时间:2012-10-31 22:58:15

标签: c++ syntax-error

以下代码只是我的Header文件的一部分

    double calculateDistance(const wp, &CWaypoint);
    void print(int format);
    bool less(wp_right, const &CWaypoint); 
    CWaypoint add(wp_right, const &CWaypoint);

错误是:

g++ -O0 -g3 -Wall -c -fmessage-length=0 -o src\Waypoint.o ..\src\Waypoint.cpp
In file included from ..\src\Waypoint.cpp:15:0:
..\src\/Waypoint.h:45:33: error: 'wp' does not name a type
..\src\/Waypoint.h:45:33: error: ISO C++ forbids declaration of 'parameter' with no type
..\src\/Waypoint.h:47:12: error: 'wp_right' has not been declared
..\src\/Waypoint.h:48:16: error: 'wp_right' has not been declared 

P.S。 :我是C ++初学者

2 个答案:

答案 0 :(得分:2)

我认为你的意思是

double calculateDistance(const wp, CWaypoint&);

&放在不是之前的类型之后。你可能有其他错误,很难确定。通常我会在函数原型中使用类型和变量名称,尽管变量名是可选的。

确定基于下面评论中的代码,似乎你想要

class CWaypoint
{
...
    double calculateDistance(const CWaypoint& wp); 
    void print(int format); 
    bool less(const CWaypoint& wp_right);
    CWaypoint add(const CWaypoint& wp_right);
};

我不确定为什么要将参数名称放在类型之前,或者为什么要用逗号分隔参数名称和类型。你已经使用getAllDataByPointer和getAllDataByReference等其他方法正确完成了它。

规则是逗号分隔方法参数,所以如果你的方法接受一个参数就不应该有逗号,如果它需要两个,那么两个参数声明之间应该有一个逗号,等等。

答案 1 :(得分:0)

您的函数声明中有3个错误。 gcc报告的第一个错误是:wp没有类型:你说const wp,OK wp是一个常数,但等待的是什么?

第二个错误是你将&放在类型之前,这也是一个错误。

第三,在键入之前放置参数名称,所以最后应该有:

double calculateDistance(const CWaypoint& wp);
bool less(const CWaypoint& wp_right);