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

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

Войти
Регистрация
Восстановить пароль
 
Демик
9 / 9 / 0
Регистрация: 19.04.2012
Сообщений: 114
#1

Ошибка объявления объекта класса - C++

06.11.2013, 11:24. Просмотров 267. Ответов 4
Метки нет (Все метки)

Добрый день, есть класс:
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
28
29
30
31
32
33
34
35
36
37
38
39
40
#ifndef _SDLENTITY_H_
#define _SDLENTITY_H_
 
#include <vector>
#include "SDLAnimation.h"
#include "CSurface.h"
 
class SDLEntity{
public:
    static std::vector<SDLEntity*>    EntityList;
 
protected:
    SDLAnimation    Anim_Control;
 
    SDL_Surface*    Surf_Entity;
 
public:
    float           X;
    float           Y;
 
    int             Width;
    int             Height;
 
    int             AnimState;
 
public:
    SDLEntity();
 
    virtual ~SDLEntity();
 
public:
    virtual bool OnLoad(char* File, int Width, int Height, int MaxFrames);
 
    virtual void OnLoop();
 
    virtual void OnRender(SDL_Renderer* Renderer_Display);
 
    virtual void OnCleanup();
};
#endif
Я пытаюсь объявить объект класса, но у меня выскакивает ошибка "error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "Yoshi_a"
:
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#ifndef _CAPP_H_
#define _CAPP_H_
 
#include "stdafx.h"
 
class CApp : public CSDLEvent {
private:
    bool    Running;
    SDL_Window* window;
    SDL_Renderer* renderer;
    SDLAnimation Anim_Yoshi;
 
private:
    SDLEntity Yoshi_a;//Тут 
    SDLEntity Yoshi_b;//И тут.
 
 
public:
    CApp();
 
    int OnExecute();
 
public:
    void Reset();
 
    bool OnInit();
 
    void OnEvent(SDL_Event* Event);
 
    void OnLoop();
 
    void OnRender();
 
    void OnCleanup();
 
    void OnExit(); 
 
    void OnKeyDown(SDL_Keycode sym, Uint16 mod, SDL_Scancode scancode);
 
    void OnLButtonDown(int mX, int mY);
};
 
#endif
Подскажите пожалуйста, в чем может быть дело?

Добавлено через 1 час 18 минут
Эта ошибка бывает когда не приинклюден заголовок, но ведь у меня есть этот инклюд, в чем же может быть дело?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.11.2013, 11:24
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ошибка объявления объекта класса (C++):

Странное поведение cout после объявления объекта класса - C++
List words; string strg; сin &gt;&gt; strg; сout &lt;&lt; strg; Ничего не выведет, пока в поток вывода не отправится endl или \n. Если...

Ошибка компиляции после объявления класса - C++
Что не так в этом коде? Писал программку, не хочет запускаться. Упростил до минимума,все равно не работает! #include &lt;iostream&gt;; ...

Распространённая ошибка: Непреднамеренное затенение объекта в результате повторного локального объявления - C++
Я хочу остановиться на ошибке, которая очень похожа на ошибку подраздела &quot;Ошибки этапа выполнения&quot;, которая там называется &quot;Работа с...

Ошибка компиляции (преобразование объекта класса в объект другого класса) - C++
Друзья, добрый день! Не могу понять почему выдается ошибка компиляции... Прога преобразует доллары США в старые Британские фунты. Но...

Друзья, подскажите, говорят, что можно поля класса инициализировать в момент объявления класса. Как это сделать? - C++
Скажу сразу, а то сейчас начнется, что я прекрасно понимаю, что поля класса при объявлении инициализировать нельзя. Можно конструктором при...

Ошибка инициализации объекта, конструктором класса - C++
Добрый день. Написал программу. Создание класса (упражнение из книги Дейтеля) &quot;Создайте класс с именем Account, которым мог бы...

4
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
06.11.2013, 11:30 #2
А где сами инклуды-то? я кроме прекомпайл stdafx.h других не вижу
0
Демик
9 / 9 / 0
Регистрация: 19.04.2012
Сообщений: 114
06.11.2013, 11:50  [ТС] #3
Они там есть, я копируя не доглядел. Вот:
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#ifndef _CAPP_H_
#define _CAPP_H_
 
#include "stdafx.h"
#include "SDLEntity.h"
 
class CApp : public CSDLEvent {
private:
    bool    Running;
    SDL_Window* window;
    SDL_Renderer* renderer;
    SDLAnimation Anim_Yoshi;
 
private:
    SDLEntity Yoshi_a;
    /*SDLEntity Yoshi_b;*/
 
 
public:
    CApp();
 
    int OnExecute();
 
public:
    void Reset();
 
    bool OnInit();
 
    void OnEvent(SDL_Event* Event);
 
    void OnLoop();
 
    void OnRender();
 
    void OnCleanup();
 
    void OnExit(); 
 
    void OnKeyDown(SDL_Keycode sym, Uint16 mod, SDL_Scancode scancode);
 
    void OnLButtonDown(int mX, int mY);
};
 
#endif
0
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
06.11.2013, 12:04 #4
А SDLEntity.h корректно подключается? И тот ли файл подключается? если в файл SDLEntity.h добавить какую-нибудь структуру вида struct foo {}; и попытаться использовать ее внутри capp.h, то получится или нет?
Явных проблем не вижу. Меня только имена классов и дефайнов смущают - не использованы ли они внутри SDL?
1
Демик
9 / 9 / 0
Регистрация: 19.04.2012
Сообщений: 114
06.11.2013, 12:59  [ТС] #5
Да, структуру он тоже не видит. Авто дополнение работает, но во время компиляции выскакивает ошибка.

Добавлено через 5 минут
Разобрался. Я неправильно подключал инклюды, все этот stdafx.h, я еще не до конца понял как он работает.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.11.2013, 12:59
Привет! Вот еще темы с ответами:

Ошибка при создании объекта класса - C++
Здравствуйте. В коде ниже при попытке вывести код на экран возникает следующая ошибка: prog.cpp: In function 'int main()': ...

Нюансы объявления класса - C++
Господа cpp-программисты. Расскажите, пожалуйста, как вы объявляете классы в своих проектах. Суть вопроса я поясню на примере. Имеется...

Как называется и что означает такая форма объявления объекта (конструктор) - C++
Конструктор явно вызывать нельзя, но эта форма записи у меня часто ассоциируется с &quot;явным&quot; вызовом конструктора. Как правильно это...

Инициализация полей во время объявления класса - C++
Инициализировать поля класса во время его объявления возможно только если в классе отсутствует конструктор? По каким то ещё принципам можно...


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

Или воспользуйтесь поиском по форуму:
5
Yandex
Объявления
06.11.2013, 12:59
Ответ Создать тему
Опции темы

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