ошибка: конфликтующее объявление — не может ли указатель быть int?

Я пытаюсь скомпилировать библиотеку при запуске 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 x в int a или же int wtv или что-то еще вызывает ошибку?

так как автор библиотеки использовал Text* x а также int x во многих функциях я подумал, может быть, он знает, что делает, и указатели могут быть intИли я ошибаюсь, думая, что он знает, что делает?

Не имеет значения: библиотека Adso, китайский механизм анализа текста.

0

Решение

У вас есть два параметра с именем ‘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);

Автор был не очень хорош, поэтому остерегайтесь других ошибок.

0

Другие решения

проблема не только в analyse_code но во всех частных функциях. если у вас есть исходный код (файл .c), я бы также проверил его там.

в любом случае вы должны изменить Text *x к чему-либо еще, такому как Text *text

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector