У меня есть базовый класс Object, и у меня есть несколько производных классов, называемых Item, Person и Location.Ошибка переопределения с несколькими производными классами в главном
Поскольку каждый из них является производным от Object, мне нужно включить Object.h в каждый из файлов заголовков, и я включаю все производные классы в свою основную.
Потому что я делаю это, я получаю ошибку переопределения.
Что я хочу знать, является правильным способом включить эти файлы, чтобы избежать этой ошибки?
Спасибо!
РЕДАКТИРОВАТЬ:
object.h
using namespace std;
class Object{
string name;
string description;
public:
Object();
Object(string name, string description);
void set_name(string name);
void set_description(string description);
string get_name();
string get_description();
~Object();
};
item.h
using namespace std;
#include "object.h"
class Item : public Object{
public:
Item();
Item(string name, string description);
};
locale.h
using namespace std;
#include "object.h"
class Locale : public Object{
public:
Locale();
Locale(string name, string description);
};
main.cpp
#include <iostream>
#include <string>
#include "locale.h"
#include "item.h"
using namespace std;
int main(){
return 0;
}
Что такое * точное сообщение об ошибке? И, пожалуйста, покажите (упрощенную) версию вашего кода. –
Точное сообщение об ошибке «Переопределение объекта» – jasonaburton
Хорошо, вам нужно будет показать код. Сначала проверьте http://sscce.org (речь идет о кипячении вашего кода до максимально возможного формата для переполнения стека). –