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

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

Войти
Регистрация
Восстановить пароль
 
 
Faken
0 / 0 / 0
Регистрация: 04.07.2013
Сообщений: 7
#1

openGl и классы - C++

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

Поставил openGL на Dev C++, все работает. Но когда я объявляю класс выдает ошибку:
"Syntax error before <название класса>"
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.11.2013, 14:45
Здравствуйте! Я подобрал для вас темы с ответами на вопрос openGl и классы (C++):

Непонятна тема (Классы содержащие другие классы, как данные члены ) - C++
Изучаю книгу Джесс Либерти(в частности эту главу в данный момент) #include &lt;iostream&gt; class Point { public: void SetX(int...

Программа по классам, которая использует классы точек и прямых на плоскости, а, возможно, и другие классы - C++
Нужно написать программу, которая использует классы точек и прямых на плоскости, а, возможно, и другие классы. Реализовать её нужно в трех...

Наследование, базовые классы и производные классы - C++
Добрый вечер.Задание: необходимо разработать поля и методы наследуемые из базового класса и собственные компоненты производных...

Классы и наследование (Создать класс 3D фигура, и производные классы шар, конус, цилиндр и куб. Создать функцию вычисления объёма.) - C++
Уважаевые, помогите написать прожку на экзамене: Создать класс 3D фигура, и производные классы шар, конус, цилиндр и куб. Создать функцию...

Классы, включающие другие классы - C++
Столкнулся вот с таким кодом: #include &lt;iostream&gt; class Point { public: void SetX(int x) {itsX = x;} void SetY(int y) ...

Классы возможностей(Mixin классы) - C++
Не могу понять смысла использования mixin классов( это класс в котором есть только методы и нет членов-данных) Т.е. к примеру у нас...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
SatanaXIII
Супер-модератор
Эксперт С++
5616 / 2651 / 246
Регистрация: 01.11.2011
Сообщений: 6,529
Завершенные тесты: 1
12.11.2013, 14:53 #2
Это потому что у вас синтаксическая ошибка перед названием класса.
Покажите как объявляете.
0
Faken
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
newbie666
Заблокирован
12.11.2013, 15:02 #4
Цитата Сообщение от Faken Посмотреть сообщение
syntax error before "ball"
А что в коде БЕФОР БАЛЛ то ? Весь файл в студию
0
programina
1914 / 599 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
12.11.2013, 15:06 #5
точка с запятой?

Добавлено через 1 минуту
имя конструктора не совпадает с именем класса
0
Faken
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
newbie666
Заблокирован
12.11.2013, 15:09 #7
Цитата Сообщение от Faken Посмотреть сообщение
Ball(float y_, float r_): x(), y(y_),r(r_),dx(),dy(){}
Ball с маленькой буквы напиши, это конструктор класса, который у тебя ball
0
Faken
0 / 0 / 0
Регистрация: 04.07.2013
Сообщений: 7
12.11.2013, 15:09  [ТС] #8
исправил на маленькую букву, проблема осталась
0
castaway
Эксперт С++
4884 / 3020 / 370
Регистрация: 10.11.2010
Сообщений: 11,078
Записей в блоге: 10
Завершенные тесты: 1
12.11.2013, 15:13 #9
Ты наверное его компилируешь как Си-файл. Как компилируешь? Как называется файл?
0
newbie666
Заблокирован
12.11.2013, 15:15 #10
Цитата Сообщение от castaway Посмотреть сообщение
Ты наверное его компилируешь как Си-файл. Как компилируешь? Как называется файл?
если с этим всё в порядке, то единственный вариант - кривой инклюдник #include <gl/glut.h> с синтаксической ошибкой
0
SatanaXIII
Супер-модератор
Эксперт С++
5616 / 2651 / 246
Регистрация: 01.11.2011
Сообщений: 6,529
Завершенные тесты: 1
12.11.2013, 15:18 #11
Мож ball повторяется?
0
Faken
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
programina
1914 / 599 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
12.11.2013, 15:25 #13
а такие конструкторы случайно не в С++11. Еще может быть, что компилятор старый(devcpp потамушто)?????
0
newbie666
Заблокирован
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
programina
1914 / 599 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
12.11.2013, 15:32 #15
Цитата Сообщение от newbie666 Посмотреть сообщение
или качай OpenGL 4
glut != opengl

glut можно юзать и с opengl4
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.11.2013, 15:32
Привет! Вот еще темы с ответами:

классы/дочерние классы/методы - C++
помогите пожалуйста! надо что выводились только учебеники. чтоб былo через GetTip. h файл class Book { protected: char...

Динамические массивы структур;Классы. Класс массивы структур;Классы. Класс динамического массива структур. - C++
Здраствуйте.Помогите с практичкой мое задание 4.3. Строка таблицы данных содержит следующую информацию о владельцах авто: ф.и.о....

С++ и OpenGL - C++
Всем доброго времени суток, подскажите почему у меня не определяется метод glBufferData(GL_ARRAY_BUFFER), библиотека не видит, подключенные...

Opengl и C++ - C++
Посоветуйте книгу, литературу....


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

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

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