C ++ структуры и конструкции - PullRequest
0 голосов
/ 17 августа 2010

хорошо, так что мне нужно помочь с этими конструкциями

struct balls {
         balls()
         {
                SetTimer(hWnd, balls.BALL_ID, 1, null);
         }
    int Ex;
    int Ey;
    UINT_PTR BALL_ID;
};

хорошо, когда я установил таймер, у меня проблемы с шариками.Компилятор думает, что шары - это структура, похожая на шары.ну, я хочу, чтобы мяч имел значение структуры.вот так

         balls()
         {
                SetTimer(hWnd, balls.BALL_ID, 1, null);
         }
    int Ex;
    int Ey;
    UINT_PTR BALL_ID;
};
balls something;

теперь он создает структуру с чем-то.BALL_ID вместо balls.BALL_ID.в шарах (), которые это делают, он меняет шары () на что-то ().Любая идея, как изменить шары.BALL_ID на stuctureName.BALL_ID?

Ответы [ 2 ]

1 голос
/ 17 августа 2010

BALL_ID является членом структуры balls, поэтому, если вы хотите использовать ее в функции-члене, вам не нужно добавлять префикс к имени экземпляра. Просто инициализируйте BALL_ID и используйте:

struct balls {
         balls( UINT_PTR id ) : BALL_ID( id ), Ex( 0 ), Ey( 0 )
         {
                SetTimer(hWnd, BALL_ID, 1, NULL);
         }
    int Ex;
    int Ey;
    UINT_PTR BALL_ID;
};

balls something( IDT_TIMER1 );
0 голосов
/ 17 августа 2010

balls.BALL_ID требует, чтобы ball был выражением объекта. Здесь «шары» является классом. Таким образом, код неверно сформирован.

$ 5.2.5 / 2 состояния- «Для первого параметра (точка) тип первого выражения (выражение объекта) должен быть« объект класса »(полного типа).

Итак, ваш звонок может быть

SetTimer(hWnd, BALL_ID, 1, null);

Кроме того, пожалуйста, инициализируйте все члены класса в конструкторе перед их использованием.

...