2010-10-13 2 views
0
BALL ball1;//,ball2,ball3; 
ball1.bx = 0; 
ball1.by = 0; 
ball1.bvx = 1.0; 
ball1.bvy = 1.0; 
ball1.radius = 5.0; 

BALL является структурой в файле separate.h, где я использовал следующий код:ожидается конструктор, деструктор, или преобразование типов перед тем лексем

typedef struct ball 
{ 
GLfloat bx; 
GLfloat by; 
GLfloat bvx; 
GLfloat bvy; 
GLfloat radius; 

}BALL; 

typedef struct paddle 
{ 
GLfloat length; 
GLfloat width; 
GLfloat px; 
GLfloat py; 
GLfloat pvx; 
GLfloat pvy; 
bool alongX; 
}PADDLE; 

Но в главном файле I я получаю вышеуказанную ошибку!

код в главном файле:

#include "header.h" 
#include "ball_pad.h" 
#include "pingpong.h" 
#include "texture.h" 
#include "3dsloader.h" 


float A = 45.0f,AA = -45.0f; 
float B = 35.0f,BB = -35.0f; 
/********************************************************** 
* 
* VARIABLES DECLARATION 
* 
*********************************************************/ 

// The width and height of your window, change them as you like 
int screen_width=640; 
int screen_height=480; 

// Absolute rotation values (0-359 degrees) and rotation increments for each frame 
double rotation_x=0, rotation_x_increment=0.1; 
double rotation_y=0, rotation_y_increment=0.05; 
double rotation_z=0, rotation_z_increment=0.03; 

// Absolute rotation values (0-359 degrees) and rotation increments for each frame 
double translation_x=0, translation_x_increment=1.0; 
double translation_y=0, translation_y_increment=0.05; 
double translation_z=0, translation_z_increment=0.03; 

// Flag for rendering as lines or filled polygons 
int filling=1; //0=OFF 1=ON 

//Now the object is generic, the cube has annoyed us a little bit, or not? 
obj_type board,ball,pad_alongX,pad_alongY; 

BALL ball1;//,ball2,ball3; 
ball1.bx = 0; 
ball1.by = 0; 
ball1.bvx = 1.0; 
ball1.bvy = 1.0; 
ball1.radius = 5.0; 
+0

Пометив ваш вопрос как C, но ваше сообщение об ошибке окончательно C++. Поэтому первым делом было бы использовать правильный компилятор для вашего кода (или изменить теги). Во-вторых, нет смысла быть в том, что вы указываете нам этот код и выдаете сообщение об ошибке, но не говорите нам, в какой строке это происходит. И тогда, возможно, просто дайте нам настройки вашей платформы (OS, компилятор, параметры компилятора). –

ответ

1

Вы должны размещать больше кода для того, чтобы кто-то, чтобы сказать вам, где именно проблема. Много раз эта ошибка возникает из-за некоторой синтаксической ошибки, например, не помещая точку с запятой в конец класса (возможно, GLfloat?), Чтобы не указывать пространство имен перед объектом, который вы пытаетесь создать или использовать. Кроме того, убедитесь, что у вас есть все необходимое в исходном файле.

Вы можете попробовать и обрезать код и скомпилировать его, чтобы увидеть, когда он будет успешным, а затем выполнить работу с этой точки. Здесь я хотел бы начать с комментирования всех членов GLfloat структуры и любого кода, который опирается на них и компилируется. Продолжайте обрезку, пока не дойдете до файла проблемы.

+0

Где объявлен и определен obj_type? –

2

Поскольку код будет действителен, если он произошел внутри функции, я предполагаю, что это происходит вне любой функции.

Строки ball1.XXX = YYY; являются операторами присваивания, и они могут возникать только внутри функции.

Если вы хотите инициализировать ball1 объект с определенным набором значений, вы можете сделать это следующим образом:

BALL ball1 = { 0, 0, 1.0, 1.0, 5.0 }; 

или, если ваш компилятор поддерживает его:

BALL ball1 = { .bx = 0, .by = 0, .bvx = 1.0, .bvy = 1.0, .radius = 5.0 }; 
Смежные вопросы

 Смежные вопросы