0

我正在尝试编译一个库,运行时make出现以下许多错误:

error: conflicting declaration ‘int x’
error: ‘x’ has a previous declaration as ‘Text* x’

这是代码:

.
.
.
class Text;
class Code {

    private:
            std::vector<std::string> *tokens;
            std::vector<std::string> *compounds;
            std::vector<std::string> *compound_xml;
            std::vector<std::string> *compound_xml_action;
            void set_helper(Text *x, int a, int b, int c, std::string field, std::string value);
            std::string itoa(int x);

    public:
            Code();
            ~Code();

            int analyse_code(Text *x, std::string c, int x, int y, int z);
            int print(Text *x, std::string c, int x, int y, int z);
            int is_class(Text *x, std::string c, int x, int y, int z);
            int is_class2(Text *x, std::string c, int x, int y, int z);
            int not_class(Text *x, std::string c, int x, int y, int z);

 .
 .
 .

所以在analyse_code函数\方法中,我应该转换int xint a还是int wtv其他原因导致错误?

由于该库的作者在许多功能中使用过Text* xint x我想也许他知道他在做什么并且指针可以是int,或者我错误地认为他知道他在做什么?

无关:库是Adso,中文文本分析引擎。

4

2 回答 2

1

您在声明中有两个名为“x”的参数,如下所示:

int not_class(Text *x, std::string c, int x, int y, int z);

将其中一个命名为其他名称。例如:

int not_class(Text *txt, std::string c, int x, int y, int z);

作者不是很好,所以也要小心其他错误。

于 2012-11-18T12:07:59.637 回答
0

问题不仅存在于所有私有函数中,analyse_code而且存在于所有私有函数中。如果你有源代码(.c 文件),我也会在那里检查。

无论如何,您应该将其更改Text *x为其他任何内容,例如Text *text

于 2012-11-18T12:21:55.147 回答