ожидаемый конструктор, деструктор или преобразование типов перед маркером ‘.’ - PullRequest
0 голосов
/ 13 октября 2010
BALL ball1;//,ball2,ball3;
ball1.bx = 0;
ball1.by = 0;
ball1.bvx = 1.0;
ball1.bvy = 1.0;
ball1.radius = 5.0;

BALL - это структура в отдельном файле .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;

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

Код в основном файле:

#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;

Ответы [ 2 ]

2 голосов
/ 13 октября 2010

Поскольку код был бы действительным, если бы он имел место внутри функции, я предполагаю, что он встречается вне любой функции. Все строки 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 };
1 голос
/ 13 октября 2010

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...