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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Egor138
 Аватар для Egor138
30 / 11 / 2
Регистрация: 10.08.2012
Сообщений: 619
Записей в блоге: 2
#1

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

18.03.2013, 18:58. Просмотров 680. Ответов 4
Метки нет (Все метки)

У меня такая ошибка возникает: переопределение типа "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
Но после этого бесконечное множество ошибок
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.03.2013, 18:58     переопределение типа "class"
Посмотрите здесь:

Двусвязный список - Error C2011: ElementsList: переопределение типа "struct" C++
C++ Ошибка "error C2011: переопределение типа"
C++ Переопределение тапа "class"
visual studio 2012 - ошибка "переопределение типа" C++
C++ Переопределение типа class
Переопределение типа "class" C++
C++ Исправить ошибку C2079 "MiniPlayer::music" использует неопределенный class "MiniMusic"
Ошибка аргумент типа "char" несовместим с параметром типа "LPCSTR" C++
C++ Компилятор выдаёт ошибку: error C2011: Confection::Date: переопределение типа "struct". Как исправить?
C++ C2011 переопределение типа "enum" RFMapTool c:\dxsdk\include\d3d8types.h
Значение типа "char *" нельзя присвоить сущности типа "LPWSTR" C++
Переопределение оператора "меньше" пользовательского типа для работы с set C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
18.03.2013, 19:02     переопределение типа "class" #2
2 и 3 строки наоборот. местами поменять надо
Croessmah
Модератор
Эксперт CЭксперт С++
 Аватар для Croessmah
12499 / 7061 / 793
Регистрация: 27.09.2012
Сообщений: 17,447
Записей в блоге: 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++
4949 / 3025 / 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"
Ответ Создать тему
Опции темы

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