Как мне следует иметь дело с ошибками переопределения классов в C ++?

В настоящее время я работаю над проектом c ++ после отсутствия, и кажется, что я забыл какой-то синтаксис или метод, который позволил бы моему коду правильно компилироваться. После попытки настроить мою среду, я столкнулся с ошибками переопределения, которые я, конечно, не хотел до конца.

Ошибка заключается в следующем при компиляции

src/foo.cpp:4:7: error: redefinition of ‘class foo’
In file included from src/foo.cpp:2:0:
./headers/foo.h:7:7: error: previous definition of ‘class foo’

Там, где я не верю, я переопределяю foo в своем пространстве; Я знаю, что это результат использования файла заголовка foo.h, который я определил.

Вот код, который я компилирую

// foo.h
#ifndef FOO_H
#define FOO_H

#include <iostream>

class foo {
public:
foo();
void test();
~foo();
};

#endif /* FOO_H */

// foo.cpp
#include <foo.h>

class foo {
public:
foo(){}
void test(){}
~foo(){}
};

foo::foo(){}

int foo::test(){
std::cout << "Derp!";
return 0;
}

foo::~foo(){}

Как мне установить заголовочный файл или файл cpp для решения этой проблемы?

0

Решение

Вы правильно создали прототип своих методов в классе, поэтому переопределение вашего класса для реализации методов неверно. Удалите дубликат класса, все, что вам нужно сделать, это определить их как таковые в вашем foo.cpp файл:

foo::foo()       { .. }
foo::~foo()      { .. }
void foo::test() { .. }
2

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

Других решений пока нет …

По вопросам рекламы [email protected]