Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.67/18: Рейтинг темы: голосов - 18, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 04.07.2013
Сообщений: 7
1

openGl и классы

12.11.2013, 14:45. Показов 3434. Ответов 26
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Поставил openGL на Dev C++, все работает. Но когда я объявляю класс выдает ошибку:
"Syntax error before <название класса>"
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.11.2013, 14:45
Ответы с готовыми решениями:

Не загружается текстура в OpenGL (OpenGL + Классы)
Здравствуйте! Пишу движок для игры. Первый прототип я сделал процедурно. Все работает как надо. ...

Perl + OpenGL Как избавиться от повторного подключения библиотеки OpenGL в модулях
Доброго времени суток! Сегодня решил заняться программированием на языке Perl, используя...

Какая значительная разница между OpenGL ES 2.0 и OpenGL 3.3 при использовании в Qt
Привет всем! У меня видеокарта имеет поддержку 3.1 версию OpenGL, обновить хочу её с помощью...

Чем отличаются готовые сборки Qt под Win + MSVC с OpenGL и без OpenGL?
Ну вопрос собственно в том, что мне не очень понятно, что же в сборке кьюте без опен джел имеется...

26
Почетный модератор
Эксперт С++
5850 / 2861 / 392
Регистрация: 01.11.2011
Сообщений: 6,907
12.11.2013, 14:53 2
Это потому что у вас синтаксическая ошибка перед названием класса.
Покажите как объявляете.
0
0 / 0 / 0
Регистрация: 04.07.2013
Сообщений: 7
12.11.2013, 14:59  [ТС] 3
C++
1
2
3
4
5
class ball{
             public:
               float x, y, dx, dy, r;
               Ball(float y_, float r_): x(), y(y_),r(r_),dx(),dy(){}
               };
при таком объявлении выдает следующее:
syntax error before "ball"
syntax error before "{" token
syntax error before ":" token
0
Заблокирован
12.11.2013, 15:02 4
Цитата Сообщение от Faken Посмотреть сообщение
syntax error before "ball"
А что в коде БЕФОР БАЛЛ то ? Весь файл в студию
0
2062 / 618 / 41
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
12.11.2013, 15:06 5
точка с запятой?

Добавлено через 1 минуту
имя конструктора не совпадает с именем класса
0
0 / 0 / 0
Регистрация: 04.07.2013
Сообщений: 7
12.11.2013, 15:06  [ТС] 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
72
73
#include <gl/glut.h>
#include <math.h>
       float r_x=50.0, r_y=292.0, r_w=80.0, r_h=8.0;
       int mouse_x;
       float i=0;
       class ball{
             public:
               float x, y, dx, dy, r;
               ball(float y_, float r_): x(), y(y_),r(r_),dx(),dy(){}
               };     
 
void Mouse(int ax, int ay){
      mouse_x=ax;
      r_x=ax-r_w/2;}
 
 
 
 
 
 
void display(){
     glClear(GL_COLOR_BUFFER_BIT);
     glColor3f(0.2,0.78,0.11);
     glRectf(r_x, r_y, r_x+r_w,r_y+r_h);
     glBegin(GL_POLYGON);
             for( i=0; i<2*3.14; i+=3.14/4)
             {glVertex2f(50+5*sin(i), (r_y-50)+5*cos(i));}
             
     glEnd();          
     glutSwapBuffers();
     glFlush();}
     
     
     
     
     
void Timer(){
     display();
     glutTimerFunc(33,Timer,0);}
 
 
 
 
void Init(){
       glClear(GL_COLOR_BUFFER_BIT);
       glClearColor(0.0,0.0,0.0,0.0);
       glMatrixMode(GL_PROJECTION);
       glOrtho(0,300,300,0,1,0);}
 
 
 
 
 
 
 
int main(int argc, char **argv){
   
    
    
    glutInit(&argc, argv);
    glutInitDisplayMode( GLUT_DOUBLE | GLUT_RGB );
    glutInitWindowSize(300, 300);
    glutInitWindowPosition(500,200);
    glutCreateWindow("test");
    glMatrixMode(GL_PROJECTION);
    glClearColor(0.0,0.0,0.0,1.0);
    
    glutTimerFunc(33,Timer,0);
    glutPassiveMotionFunc(Mouse);
    glutDisplayFunc(display);
    Init();
    glutMainLoop();
}
Только начал осваивать opengl, делаю игру арканоид по примеру с youtube
0
Заблокирован
12.11.2013, 15:09 7
Цитата Сообщение от Faken Посмотреть сообщение
Ball(float y_, float r_): x(), y(y_),r(r_),dx(),dy(){}
Ball с маленькой буквы напиши, это конструктор класса, который у тебя ball
0
0 / 0 / 0
Регистрация: 04.07.2013
Сообщений: 7
12.11.2013, 15:09  [ТС] 8
исправил на маленькую букву, проблема осталась
0
Эксперт С++
4985 / 3092 / 456
Регистрация: 10.11.2010
Сообщений: 11,169
Записей в блоге: 10
12.11.2013, 15:13 9
Ты наверное его компилируешь как Си-файл. Как компилируешь? Как называется файл?
0
Заблокирован
12.11.2013, 15:15 10
Цитата Сообщение от castaway Посмотреть сообщение
Ты наверное его компилируешь как Си-файл. Как компилируешь? Как называется файл?
если с этим всё в порядке, то единственный вариант - кривой инклюдник #include <gl/glut.h> с синтаксической ошибкой
0
Почетный модератор
Эксперт С++
5850 / 2861 / 392
Регистрация: 01.11.2011
Сообщений: 6,907
12.11.2013, 15:18 11
Мож ball повторяется?
0
0 / 0 / 0
Регистрация: 04.07.2013
Сообщений: 7
12.11.2013, 15:24  [ТС] 12
Да, компилирую как Си, если компилирую как С++, то выдает следующее:
C++
1
С:\Dev-cpp\include\gl\glut.h redeclaration of C++ built-in type short
если два раза кликнуть по этой ошибке то меня перенаправляет в glut.h на эти строки:
C++
1
2
3
4
5
6
   /* XXX This is from Win32's <ctype.h> */
#  ifndef _WCHAR_T_DEFINED
typedef unsigned short wchar_t;
#   define _WCHAR_T_DEFINED
#  endif
# endif
0
2062 / 618 / 41
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
12.11.2013, 15:25 13
а такие конструкторы случайно не в С++11. Еще может быть, что компилятор старый(devcpp потамушто)?????
0
Заблокирован
12.11.2013, 15:26 14
Цитата Сообщение от Faken Посмотреть сообщение
# *ifndef _WCHAR_T_DEFINED
typedef unsigned short wchar_t;
# * define _WCHAR_T_DEFINED
сотри эти строчки в glut.h, т.к. это пытается переопределить wchar_t, который в современных С++ библиотеках и так есть. glut.h - старьё. Учи DirectX лучше или качай OpenGL 4
0
2062 / 618 / 41
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
12.11.2013, 15:32 15
Цитата Сообщение от newbie666 Посмотреть сообщение
или качай OpenGL 4
glut != opengl

glut можно юзать и с opengl4
0
Заблокирован
12.11.2013, 15:34 16
Цитата Сообщение от programina Посмотреть сообщение
glut != opengl
а ну да... сто лет не пользовался OpenGl... Ну тем паче его в топку вместе с GLUT.
Учи DirectX
0
2062 / 618 / 41
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
12.11.2013, 15:37 17
Цитата Сообщение от newbie666 Посмотреть сообщение
а ну да... сто лет не пользовался OpenGl... Ну тем паче его в топку вместе с GLUT.
Учи DirectX
Да глут вообще не причем!!!1 И еще опенгл кроссплатформенный, поэтому надо учить опенгл, а не директикс!

ТС, не слушай нубов всяких
0
newbie666
12.11.2013, 15:46
  #18

Не по теме:

Цитата Сообщение от programina Посмотреть сообщение
Да глут вообще не причем!!!1 И еще опенгл кроссплатформенный, поэтому надо учить опенгл, а не директикс!
ТС, не слушай нубов всяких
опять холи вар :D
Кросс то - кросс, только накой хрен тебе этот кросс, когда основные программы с графикой и игры на Windows. Хочешь делать игры для пингвинов - скатертью дорога, но денег ты на них не набомбишь :rofl:
Не слушай программистов в юбке ухаха :rofl:

0
Почетный модератор
Эксперт С++
5850 / 2861 / 392
Регистрация: 01.11.2011
Сообщений: 6,907
12.11.2013, 16:06 19

Не по теме:

Цитата Сообщение от programina Посмотреть сообщение
не слушай нубов всяких
Действительно. Вон на канве царапают такие вещи в шестом билдере - закачаешься. :)
Цитата Сообщение от newbie666 Посмотреть сообщение
но денег ты на них не набомбишь
Правильно. Будущее за казуалками и инди. Графика для людей с ограниченной фантазией!
Цитата Сообщение от newbie666 Посмотреть сообщение
Не слушай программистов в юбке ухаха
Хорошо, что это была шутка, да. Совершенно невинная. ;D


И вообще хватит оффтопить. Еще не починен
Цитата Сообщение от Faken Посмотреть сообщение
"Syntax error before <название класса>"
0
Заблокирован
12.11.2013, 16:12 20
Цитата Сообщение от SatanaXIII Посмотреть сообщение
И вообще хватит оффтопить. Еще не починен
починен. в 14-м посте я уме уже сказал что стереть из кривого файла глута...
1
12.11.2013, 16:12
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.11.2013, 16:12
Помогаю со студенческими работами здесь

OpenGL Ваша текущая конфигурация рабочего стола не поддерживает OpenGL Аппаратное ускорение.
всем здрасте ) скачал opengl extensions viewer решил проверить драйверы на видео карту.В...

Создаю игру с научным уколоном на C++/opengl. Как подключить openGL и добиться кроссплатформенности
Я читал про opengl - для его инициализации нужно создавать windows - окно. Для linux видимо...

(2 главы перевода книги доступно) OpenGL Programming Guide, Version 4.3, 8th Edition - OpenGL
Продолжая тему с переводом книги https://www.cyberforum.ru/opengl/thread1551398.html Выкладываю...

Ошибки при подключение opengl, немного не связанные с opengl
#include &lt;windows.h&gt; #include &quot;stdafx.h&quot; #include &lt;gl/gl.h&gt; #include &lt;gl/glu.h&gt; #include...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru