Проклятие ошибок с классами C ++ - PullRequest
0 голосов
/ 24 марта 2011
#include <iostream>
#include <conio.h>
#include <vector>
#include <cstdio>
#include "color.h"
#include <curses.h>
using namespace std;
using namespace ConsoleColor;
namespace color = ConsoleColor;

int i, n;
char input, white_space = 250, obstacle_default = 219, player=1, up_key=119, down_key=115, left_key=97, right_key=100;

class box {
    int x, y, pos, pos_x, pos_y, area;
    vector<int> obstacles;
    public:
        box (int,int);
        void print (void);
        void move (void);
        void set_obstacles (vector<int> v);
};

int main()
{
    box main_hallway(50,10);
    vector<int> obstacle_list={1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 20, 30, 40};
    main_hallway.set_obstacles(obstacle_list);
    main_hallway.move();
    return 0;
}
    [...]

С помощью приведенного выше кода, после включения curses.h из библиотек pdcurses, я сразу получаю следующие две ошибки:

27: ошибка: ожидается ';'до 'main_hallway'
28: ошибка: 'main_hallway' не был объявлен в этой области

Код работал заранее, но с добавлением pdcurses ... похоже, он не любит соглашаться с классами,Есть ли способ исправить это?

Дополнительная информация:
- Windows Vista Professional
- Код :: Блоки 10.04 + MinGW32
- PDCurses 3.4

Ответы [ 2 ]

1 голос
/ 24 марта 2011

Предположительно, в pdcurses есть #define, который определяет некоторый токен здесь. Я предполагаю для move или print. Используйте cl / e в Windows, чтобы увидеть, что выходит из препроцессора.

0 голосов
/ 24 марта 2011

Я решил свою проблему, мне нужно было объявить мой класс так:

class x {
} y;

вместо:

class x{
};
int main()
{
   x y;
}
...