Форум программистов, компьютерный форум CyberForum.ru

переопределение типа "class" - C++

Восстановить пароль Регистрация
 
Egor138
 Аватар для Egor138
30 / 11 / 2
Регистрация: 10.08.2012
Сообщений: 619
Записей в блоге: 2
18.03.2013, 18:58     переопределение типа "class" #1
У меня такая ошибка возникает: переопределение типа "class"

Знаю из-зи чего, а убрать не могу:

Есть файл 1.h и 1.cpp в котором базовый класс и описание методов соответственно

Далее у меня 2 пары файлов : 2.h, 2.cpp и 3.h, 3.cpp. В этих аналогичные задачи: также класс и методы, единственное, что классы и в 2.h и в 3.h наследуются от класса который в 1.h, следовательно я подключал один и тот же файл 1.h в двух этих хедерах.

Все вроде нормально, но не полючается в файле main.cpp подключить сразу и 2.h и 3.h так как в обоих есть 1.h и возникает переопределние. Но как с ним бороться???



Пробовал заключить файл 1.h вот в это:

C++
1
2
3
4
5
6
#define _1_H
#ifndef _1_H
 
...
 
#endif
Но после этого бесконечное множество ошибок
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
18.03.2013, 19:02     переопределение типа "class" #2
2 и 3 строки наоборот. местами поменять надо
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11838 / 6817 / 771
Регистрация: 27.09.2012
Сообщений: 16,910
Записей в блоге: 2
Завершенные тесты: 1
18.03.2013, 19:02     переопределение типа "class" #3
Include Guards + не реализовывать класс прямо в объявлении?
Egor138
 Аватар для Egor138
30 / 11 / 2
Регистрация: 10.08.2012
Сообщений: 619
Записей в блоге: 2
18.03.2013, 19:13  [ТС]     переопределение типа "class" #4
Цитата Сообщение от I.M. Посмотреть сообщение
2 и 3 строки наоборот. местами поменять надо


Спасибо помогло)

Добавлено через 4 минуты
Цитата Сообщение от Croessmah Посмотреть сообщение
Include Guards + не реализовывать класс прямо в объявлении?
А ничего не будет страшного если я на всякий случай буду использовать этот Include Guards в каждом h файле???
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
21.03.2013, 13:25     переопределение типа "class" #5
Цитата Сообщение от Egor138 Посмотреть сообщение
А ничего не будет страшного если я на всякий случай буду использовать этот Include Guards в каждом h файле???
Если именно этот (_1_H) - то будет. Для каждого файла это имя должно быть уникальным. А если вы про Include Guard'ы в общем - то конечно, каждый header должен помещаться в include guard.
Yandex
Объявления
21.03.2013, 13:25     переопределение типа "class"
Ответ Создать тему
Опции темы

Текущее время: 16:06. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru