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

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

Войти
Регистрация
Восстановить пароль
 
HardMorg
3 / 26 / 3
Регистрация: 29.08.2010
Сообщений: 204
#1

не компилируется - C++

16.03.2012, 20:13. Просмотров 455. Ответов 9
Метки нет (Все метки)

Вот кусок кода

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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
class Game;
 
class View {
 
private:
    static int left;
    static int right;
    static int position_x;
    static int position_y;
    static int *argc;
    static char **argv;
    static int bottom;
    static int top;
    static int windowSize;
 
public:
 
    View() { 
    }
 
    static void create_window() {
 
        glutInit(View::argc, View::argv);
        glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB);
        glutInitWindowSize(View::windowSize, View::windowSize);
        glutInitWindowPosition(View::position_x, View::position_y);
        glutCreateWindow("Snake");
        glClearColor(0, 0, 0, 1);
 
        glMatrixMode(GL_PROJECTION);
        glLoadIdentity();
        
        glOrtho(View::left, View::right, View::bottom , View::top, 0, 10);
 
        glutDisplayFunc(Game::game);
 
        glutMainLoop();
    
    }
    void draw() {
 
    }
 
    static int const& getLeft() {
        return left;
    }
     
    static int const& getRight()  {
        return right;
    }
 
    static void setArgc(int *ptr) {
        argc = ptr;
    }
    static void setArgv(char **a) {
        argv = a;
    }
};
 
class Game {
 
private:
    View *interface;
    Data *data;
public:
    Game() {
 
        interface = new View();
    }
    void startGame() {
 
        View::create_window();
 
    }
 
    static void game() {
 
        glClear(GL_COLOR_BUFFER_BIT);
        glBegin(GL_LINE_LOOP);
 
 
        glEnd();
 
        glutSwapBuffers();
 
    }
};
только я не пойму почему он не компилируется

c:\users\morg\documents\visual studio 2010\projects\opengl\snake\snake\main.cpp(219): error C2027: использование неопределенного типа "Game"
1> c:\users\morg\documents\visual studio 2010\projects\opengl\snake\snake\main.cpp(157): см. объявление "Game"
1>c:\users\morg\documents\visual studio 2010\projects\opengl\snake\snake\main.cpp(219): error C2065: game: необъявленный идентификатор

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

Программа компилируется в Borland 6.0 но не компилируется в Visual Studio 2008 - C++
Ета програма компилируетса в борланде 6.0 но не компилируетса в Visualstudio 2008 и в борланде 10-м почему? #include<iostream> ...

Компилируется в С++ bulder 6.0 но не компилируется в VS 2010 express - C++
Здравствуйте. есть небольшая программка которая с успехом компилируется в borland C++ builder 6.0 но не в какую не хочет компилироваться...

В формате .cpp код компилируется, а в .c не компилируется - C++
1).Подскажите почему в формате .cpp код компилируется, а в .c не компилируется 2). Как сделать так, чтобы компилировалось в .c? ...

Не компилируется - C++
Не могу понять в чем ошибка, помогите разобраться #include <stdio.h> #include <stdlib.h> void zapolnit() { FILE* f =...

не компилируется - C++
люди добрые!и не очень!! итак.имеются два файла-игра и меню игры. из них я создала проект.так понимаю один из main'ов нужно убрать-тот...

Не компилируется - C++
#include "stdafx.h" #include <time.h> #include <iostream> using namespace std; /* Создать двоичный файл из случайно заданных...

9
Kastaneda
Jesus loves me
Эксперт С++
4689 / 2893 / 236
Регистрация: 12.12.2009
Сообщений: 7,357
Записей в блоге: 2
Завершенные тесты: 1
16.03.2012, 20:17 #2
C++
1
glutDisplayFunc(Game::game);
тут компилятор не знает, что у классе Game есть что-то под именем game
Попробуй сначала Game определить, потом View
0
HardMorg
3 / 26 / 3
Регистрация: 29.08.2010
Сообщений: 204
16.03.2012, 20:37  [ТС] #3
Kastaneda, пробывал, ситуация ровно такая же только наоборот
0
zss
Модератор
Эксперт С++
6540 / 6102 / 2010
Регистрация: 18.12.2011
Сообщений: 15,878
Завершенные тесты: 1
16.03.2012, 20:52 #4
В VS 2008 если перенести класс Game в начало,
то эта ошибка пропадает.
0
HardMorg
3 / 26 / 3
Регистрация: 29.08.2010
Сообщений: 204
16.03.2012, 20:54  [ТС] #5
zss2, у меня 2010
0
Kastaneda
Jesus loves me
Эксперт С++
4689 / 2893 / 236
Регистрация: 12.12.2009
Сообщений: 7,357
Записей в блоге: 2
Завершенные тесты: 1
16.03.2012, 20:56 #6
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
class View;
class Data;
 
class Game {
 
private:
        View *interface;
        Data *data;
public:
        Game();
        void startGame();
 
        static void game() {
 
         
 
        }
};
 
class View {
 
private:
        static int left;
        static int right;
        static int position_x;
        static int position_y;
        static int *argc;
        static char **argv;
        static int bottom;
        static int top;
        static int windowSize;
 
public:
 
        View() {}
 
        static void create_window() {
 
 
                Game::game();
 
        }
        void draw() {
 
        }
 
        static int const& getLeft() {
                return left;
        }
         
        static int const& getRight()  {
                return right;
        }
 
        static void setArgc(int *ptr) {
                argc = ptr;
        }
        static void setArgv(char **a) {
                argv = a;
        }
};
 
void Game::startGame() {
 
                View::create_window();
 
}
Game::Game() {
 
                interface = new View;
}
у меня нет Glut'а, поэтому слегка упростил код. Но суть должна быть понятна.
1
HardMorg
3 / 26 / 3
Регистрация: 29.08.2010
Сообщений: 204
16.03.2012, 22:46  [ТС] #7
Kastaneda, Большое вам конешно спасибо, но все же хотелось бы разобратся ) все таки нужно всегда понимать что происходит, я толком не дал дупля
0
retmas
Жарю без масла
864 / 746 / 168
Регистрация: 13.01.2012
Сообщений: 1,702
16.03.2012, 23:56 #8
Цитата Сообщение от HardMorg Посмотреть сообщение
glutDisplayFunc(Game::game);
в этой точке компилятор ещё ничего не знает о классе Game. поэтому Game::game для него
Цитата Сообщение от HardMorg Посмотреть сообщение
необъявленный идентификатор
0
HardMorg
3 / 26 / 3
Регистрация: 29.08.2010
Сообщений: 204
17.03.2012, 00:39  [ТС] #9
retmas, Ну это впринцыпе понятно, но я все же обьявил сверху что есть такой класс Game или ему этого мало? и нужно функции реализовывать за пределами класса?
0
retmas
Жарю без масла
864 / 746 / 168
Регистрация: 13.01.2012
Сообщений: 1,702
17.03.2012, 00:45 #10
Цитата Сообщение от HardMorg Посмотреть сообщение
но я все же обьявил сверху что есть такой класс Game
из этого объявления компилятор не может делать никаких выводов об этом классе, в т.ч. и то что он содержит статическую ф-ю Game::game()
1
17.03.2012, 00:45
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.03.2012, 00:45
Привет! Вот еще темы с ответами:

не компилируется - C++
только начал изучать C++ компилирую файл вроде компилируется нажимаю выполнить и он пишит исходный файл не откомпилирован помогите...

Не компилируется - C++
Вообщем вот код: #include <iostream> ; using namespace std; double kong(double); int main(){

Не компилируется - C++
В среде MS Visual не хочет компилироваться даже то,что создано мастером автоматически. Снизу скрин. Также еще один глупый вопрос....

Не компилируется!!!! - C++
Написал прогу которая каждое слово записывает в массив. При вводе текста выбивает объявления, а именно "Инструкция по адресу...


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

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

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