Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
dimakozyr
158 / 25 / 3
Регистрация: 17.08.2013
Сообщений: 479
#1

Не определен базовый класс - C++

12.09.2013, 16:31. Просмотров 629. Ответов 5
Метки нет (Все метки)

В проекте есть два проблемных класса:

C_Button:
C++
1
2
3
4
#include "C_Scenes.h"
class C_Button: protected C_Scenes {
   //...
}
C_Scene:
http://www.cyberforum.ru/cpp-beginners/thread648836.html
C++
1
2
3
4
5
#include "C_Button.h"
class C_Scenes {
  protected:
      SDL_Event o_event_1;
};
Выдает ошибку:
error C2504: C_Scenes: не определен базовый класс

Как можно ее исправить, не переделывая полностью архитектуру?
0
Миниатюры
Не определен базовый класс  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.09.2013, 16:31
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Не определен базовый класс (C++):

Не определен базовый класс
Есть файл renderable.h: #pragma once #include "device.h" #include...

Не определен базовый класс
Привет, есть проект с MyForm.h в котором я подключаю классы. И в итоге получаю...

Не определен базовый класс
Есть класс C_Button, в нем определен метод buttonEvents(). Этому методу...

error C2504: CMove: не определен базовый класс
Подскажите, пожалуйста, почему может возникать данная ошибка? Файл CBattle.h...

Ошибка компиляции - "класс" : базовый класс не определен
Помогите пожалуйста, у меня в проекте есть несколько классов, которые имеют...

5
gray_fox
What a waste!
1552 / 1257 / 165
Регистрация: 21.04.2012
Сообщений: 2,634
Завершенные тесты: 3
12.09.2013, 16:33 #2
dimakozyr, зачем #include "C_Button.h" в C_scenes.h?
1
CheshireCat
Эксперт С++
2907 / 1256 / 114
Регистрация: 27.05.2008
Сообщений: 3,450
12.09.2013, 16:35 #3
У тебя классы через #include ссылаются друг на друга. Возникает коллизия.
А действительно классу
C_Scenes нужно что-то знать про класс C_Button? Насколько обосновано #include "C_Button.h" в файле C_Scene?
1
dimakozyr
158 / 25 / 3
Регистрация: 17.08.2013
Сообщений: 479
12.09.2013, 16:45  [ТС] #4
Цитата Сообщение от gray_fox Посмотреть сообщение
зачем #include "C_Button.h" в C_scenes.h?
Цитата Сообщение от CheshireCat Посмотреть сообщение
Насколько обосновано #include "C_Button.h" в файле C_Scene?
В C_Scene есть метод buttonEvents(), который используется в C_Button. Этому методу нужен экземпляр o_event_1, определенный в классе C_Scenes. Оба класса находятся в разных файлах.

Может, вынести объявление "SDL_Event o_event_1;" за пределы класса? Тогда можно будет обойтись без наследования, но будет глобальная переменная
0
gray_fox
What a waste!
1552 / 1257 / 165
Регистрация: 21.04.2012
Сообщений: 2,634
Завершенные тесты: 3
12.09.2013, 16:54 #5
Цитата Сообщение от dimakozyr Посмотреть сообщение
В C_Scene есть метод buttonEvents(), который используется в C_Button. Этому методу нужен экземпляр o_event_1, определенный в классе C_Scenes. Оба класса находятся в разных файлах.
И зачем для этого этот include? Я не понял...

Добавлено через 4 минуты
В любом случае такая "схема" include-ов не взлетит. Можно сделать предварительное объявление C_Button перед определением C_Scenes, вот только зачем?
1
dimakozyr
158 / 25 / 3
Регистрация: 17.08.2013
Сообщений: 479
12.09.2013, 18:36  [ТС] #6
Цитата Сообщение от gray_fox Посмотреть сообщение
И зачем для этого этот include? Я не понял...
Сорри, метод buttonEvents() определен в классе C_Button, а вызывается он из C_Scenes.
В то-же время в C_Scenes есть экземпляр "SDL_Event o_event_1;", которая нужна в C_Button.

В общем, решил проблему, определив "SDL_Event o_event_1;" еще раз в C_Button, это позволило убрать наследование и инклуды из этого класса
0
12.09.2013, 18:36
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.09.2013, 18:36
Привет! Вот еще темы с решениями:

typeid определяет тип указателя на базовый класс, как тип "базовый класс". Вне зависимости от присвоенного ему значения
Вот код: #include <iostream> #include <string> #include <conio.h>...

Базовый класс Complex и производный класс для реализации квадратных матриц
1) Создайте базовый класс Complex (комплексное число) для реализации...

Класс: как обратиться к методу производного класса через итератор на базовый класс?
Есть абстрактный и два порожденных. Хочу создать например list<Base*> list1;...

Класс: Создать абстрактный базовый класс Figure с виртуальными методами вычисления площади и периметра.
Создать абстрактный базовый класс Figure с виртуальными методами вычисления...


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

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

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