Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

18.03.2013, 18:58. Просмотров 745. Ответов 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
Но после этого бесконечное множество ошибок
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.03.2013, 18:58
Здравствуйте! Я подобрал для вас темы с ответами на вопрос переопределение типа "class" (C++):

Переопределение типа "class" - C++
Как я понял, ошибка "переопределение типа "class"" означает что класс уже был где-то объявлен, однако у меня он вроде нигде больше не...

Переопределение тапа "class" - C++
В чём проблема? Матюкается на оба файла. #include "stdafx.h" class CData1 { public: CData1(); ~CData1(); int...

visual studio 2012 - ошибка "переопределение типа" - C++
имею head.h #include <stdio.h> #include <iostream> #include <Windows.h> #pragma comment(lib, "ws2_32") using namespace...

C2011 переопределение типа "enum" RFMapTool c:\dxsdk\include\d3d8types.h - C++
Серьезность Код Описание Проект Файл Строка Состояние подавления Ошибка C2011 _D3DZBUFFERTYPE: переопределение типа...

Переопределение оператора "меньше" пользовательского типа для работы с set - C++
Понимаю, что чтобы хранить в set элементы некоторого класса, нужно переопределить оператор < для этого класса. Оператор переопределен,...

Двусвязный список - Error C2011: ElementsList: переопределение типа "struct" - C++
Что я сделал не правильно? typedef struct ElementsList { struct ElementsList *Prev; struct ElementsList *Next; ...

4
I.M.
566 / 549 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
18.03.2013, 19:02 #2
2 и 3 строки наоборот. местами поменять надо
1
Croessmah
Ушел
Эксперт CЭксперт С++
13557 / 7707 / 872
Регистрация: 27.09.2012
Сообщений: 18,996
Записей в блоге: 3
Завершенные тесты: 1
18.03.2013, 19:02 #3
Include Guards + не реализовывать класс прямо в объявлении?
1
Egor138
32 / 13 / 2
Регистрация: 10.08.2012
Сообщений: 619
Записей в блоге: 2
18.03.2013, 19:13  [ТС] #4
Цитата Сообщение от I.M. Посмотреть сообщение
2 и 3 строки наоборот. местами поменять надо


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

Добавлено через 4 минуты
Цитата Сообщение от Croessmah Посмотреть сообщение
Include Guards + не реализовывать класс прямо в объявлении?
А ничего не будет страшного если я на всякий случай буду использовать этот Include Guards в каждом h файле???
0
silent_1991
Эксперт С++
4989 / 3046 / 149
Регистрация: 11.11.2009
Сообщений: 7,028
Завершенные тесты: 1
21.03.2013, 13:25 #5
Цитата Сообщение от Egor138 Посмотреть сообщение
А ничего не будет страшного если я на всякий случай буду использовать этот Include Guards в каждом h файле???
Если именно этот (_1_H) - то будет. Для каждого файла это имя должно быть уникальным. А если вы про Include Guard'ы в общем - то конечно, каждый header должен помещаться в include guard.
0
21.03.2013, 13:25
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.03.2013, 13:25
Привет! Вот еще темы с ответами:

Ошибка "error C2011: переопределение типа" - C++
struct Tunit { public : int team; int team_agricultural; POINT location; POINT moveLocation; float max_helf; ...

Компилятор выдаёт ошибку: error C2011: Confection::Date: переопределение типа "struct". Как исправить? - C++
#pragma once #pragma warning #ifndef Confection_H #define Confection_H #include <string> #include "Filling.h" using namespace...

Переопределение типа class - C++
Подскажите в чем ошибка??? Не могу никак разобраться. "Ошибка 1 error C2011: zvetnik: переопределение типа...

Значение типа "void" нельзя использовать для инициализации сущности типа "int" - C++
Не понимаю, почему компилятор считает, что s.pop() это значение типа "void".. он же вернет этот удаляемый элемент? Как исправить? void...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.