Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
 Аватар для radiofan
3 / 2 / 1
Регистрация: 18.04.2018
Сообщений: 51

Не могу разобраться с наследование классов

18.09.2018, 14:54. Показов 1243. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, уважаемые форумчане. У меня огромные проблемы с наследованием классов. Куча ошибок появляется, не знаю в какую сторону копать и что с этим делать. Помогите пожалуйста. Работаю в Visual Studio 2012.
Код здесь:
Кликните здесь для просмотра всего текста

Main.cpp
C++
1
2
3
4
5
6
7
8
#include "stdafx.h"
#include "Addition_functions_and_classes.h"
 
int main(int argc, char* args[]){
    Graphic graph;
 
    return 0;
}
Graphic.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class Graphic : protected Game{
    private:
        //Набор тайлов
        SDL_Texture* tiles;
        Uint8 tiles_rad;
        //Набор деревьев
        SDL_Texture* trees;
        Uint8 trees_rad;
        //Герой
        SDL_Texture* heroe;
        Uint8 heroe_rad;
 
    public:
        Graphic(void);
        //Получает массив из номеров тайлов, рендер, дисплей, 
        //ссылку на класс главного героя,
        //основание сис-мы счисления в которой считаются тайлы
        //И рисует карту относительно героя и самого героя
        void Paint_ls(std::vector<std::vector<Uint8>> &map);
        
 
        ~Graphic(void);
};
Game.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#pragma once
/*
*
*/
class Game{
    protected:
        Main_init sdl;
 
    public:
        Game(void);
 
        void Events();
        void Loop();
        void Render();
 
 
        ~Game(void);
};
Main_init.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#pragma once
/*
* Инициализируем SDL по всем параметрам
* Инициализируем SDL_Image для png
* Получаем информацию о режиме отображения
* Создаём окно
* Заполняем окно чёрным пока идёт инициализация
* Создаём рендер для окна
*/
class Main_init{
    private:
        SDL_Window *win;
        SDL_Renderer *ren;
        SDL_DisplayMode mode;
 
    public:
        Main_init(void);
        
        //геттер окна
        SDL_Window* window();
        //геттер рендера
        SDL_Renderer* render();
        //геттер данных о рбочем столе
        SDL_DisplayMode& displaymode();      
 
        ~Main_init(void);
};


Вывод
Кликните здесь для просмотра всего текста

1>------ Построение начато: проект: project01, Конфигурация: Debug Win32 ------
1> Map.cpp
1>d:\документы степан\проги\c++\project01\project01\gam e.h(7): error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "sdl"
1>d:\документы степан\проги\c++\project01\project01\gam e.h(7): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1> Main_init.cpp
1>d:\документы степан\проги\c++\project01\project01\gam e.h(7): error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "sdl"
1>d:\документы степан\проги\c++\project01\project01\gam e.h(7): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1> Main.cpp
1>d:\документы степан\проги\c++\project01\project01\gam e.h(7): error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "sdl"
1>d:\документы степан\проги\c++\project01\project01\gam e.h(7): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1> Heroe.cpp
1>d:\документы степан\проги\c++\project01\project01\gam e.h(7): error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "sdl"
1>d:\документы степан\проги\c++\project01\project01\gam e.h(7): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1> Graphic.cpp
1>d:\документы степан\проги\c++\project01\project01\gam e.h(7): error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "sdl"
1>d:\документы степан\проги\c++\project01\project01\gam e.h(7): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>d:\документы степан\проги\c++\project01\project01\gra phic.cpp(6): error C2065: sdl: необъявленный идентификатор
1>d:\документы степан\проги\c++\project01\project01\gra phic.cpp(6): error C2228: выражение слева от ".render" должно представлять класс, структуру или объединение
1> тип: 'unknown-type'
1>d:\документы степан\проги\c++\project01\project01\gra phic.cpp(8): error C2065: sdl: необъявленный идентификатор
1>d:\документы степан\проги\c++\project01\project01\gra phic.cpp(8): error C2228: выражение слева от ".render" должно представлять класс, структуру или объединение
1> тип: 'unknown-type'
1>d:\документы степан\проги\c++\project01\project01\gra phic.cpp(10): error C2065: sdl: необъявленный идентификатор
1>d:\документы степан\проги\c++\project01\project01\gra phic.cpp(10): error C2228: выражение слева от ".render" должно представлять класс, структуру или объединение
1> тип: 'unknown-type'
1>d:\документы степан\проги\c++\project01\project01\gra phic.cpp(35): error C2065: sdl: необъявленный идентификатор
1>d:\документы степан\проги\c++\project01\project01\gra phic.cpp(35): error C2228: выражение слева от ".render" должно представлять класс, структуру или объединение
1> тип: 'unknown-type'
1>d:\документы степан\проги\c++\project01\project01\gra phic.cpp(44): error C2065: sdl: необъявленный идентификатор
1>d:\документы степан\проги\c++\project01\project01\gra phic.cpp(44): error C2228: выражение слева от ".displaymode" должно представлять класс, структуру или объединение
1> тип: 'unknown-type'
1>d:\документы степан\проги\c++\project01\project01\gra phic.cpp(44): error C2228: выражение слева от ".h" должно представлять класс, структуру или объединение
1>d:\документы степан\проги\c++\project01\project01\gra phic.cpp(46): error C2065: sdl: необъявленный идентификатор
1>d:\документы степан\проги\c++\project01\project01\gra phic.cpp(46): error C2228: выражение слева от ".displaymode" должно представлять класс, структуру или объединение
1> тип: 'unknown-type'
1>d:\документы степан\проги\c++\project01\project01\gra phic.cpp(46): error C2228: выражение слева от ".w" должно представлять класс, структуру или объединение
1>d:\документы степан\проги\c++\project01\project01\gra phic.cpp(49): error C2065: sdl: необъявленный идентификатор
1>d:\документы степан\проги\c++\project01\project01\gra phic.cpp(49): error C2228: выражение слева от ".render" должно представлять класс, структуру или объединение
1> тип: 'unknown-type'
1> Game.cpp
1>d:\документы степан\проги\c++\project01\project01\gam e.h(7): error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "sdl"
1>d:\документы степан\проги\c++\project01\project01\gam e.h(7): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1> Создание кода...
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========


Ошибки
Кликните здесь для просмотра всего текста

Ошибка 1 error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "sdl" d:\документы степан\проги\c++\project01\project01\gam e.h 7
Ошибка 2 error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию d:\документы степан\проги\c++\project01\project01\gam e.h 7



Не могу понять при чем тут отсутствие ;. Все классы подключаются в файлике Addition_functions_and_classes.h, он подключается во всех исходных кодах (cpp всмысле).
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.09.2018, 14:54
Ответы с готовыми решениями:

Не могу понять, в чем ошибка. Наследование классов
Начал изучать наследование классов и и &quot;затормозил&quot; на такой простенькой программе. Не могу понять в чем ошибка. #include...

Не могу разобраться с ошибками, наследование и шаблоны
Задание: Смоделировать стек на базе статического массива по заданию. Написать основные операции для работы со стеком (push, pop, top,...

Наследование классов С++ (не могу правильно унаследовать базовый класс)
Здравствуйте, вот хочу разобраться как правильно унаследовать класс. Задача такова, унаследовать ранее написанный мною класс, добавив в...

2
Эксперт С++
1624 / 954 / 782
Регистрация: 06.02.2016
Сообщений: 2,452
Записей в блоге: 31
18.09.2018, 16:52
Лучший ответ Сообщение было отмечено radiofan как решение

Решение

Может подключить Main_init.h в Game.h?
1
 Аватар для radiofan
3 / 2 / 1
Регистрация: 18.04.2018
Сообщений: 51
19.09.2018, 09:22  [ТС]
Спасибо, Peoples. Помогло!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.09.2018, 09:22
Помогаю со студенческими работами здесь

структуру классов! не могу разобраться!!!
вопрос такой: _-Можно ли создавать, рисовать и удалять объекты не зная их конкретный тип и что для этого необходимо. Используйте это в...

Композиция классов. Не могу разобраться
С сентября начал изучение C++, но с нашими темпами не успеваю всё освоить. Собственно само задание: Реализовать композицию классов из...

Автоматическая генерация классов С ++ с UML диаграмм классов. Наследование в с++. Абстрактные классы. WhiteStarUML
Создать классовую модель(желательно в WhiteStarUML), которая включает в себя абстрактный класс CGraphicsObject, его наследник - базовый...

Заменить наследование классов на наследование интерфейсов
#include &lt;iostream&gt; #include &lt;assert.h&gt; using namespace std; int people_on_base = 100; int vehicles_on_base = 100; double...

Наследование классов. Копирование производных классов
Здравствуйте всем, у меня такой вопрос: написал код #include &quot;stdafx.h&quot; class A //Создаем класс А { int mA; ...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru