singlepost

Нужна помощь со структурами с Bloodshed Dev-C++ << На главную или назад  

Я изучаю С++ в версии от Bloodshed, использующей компилятор Mingw и недавно столкнулся с проблемой - при попытке использования constructor для структуры компилятор выдает ошибку синтаксиса - отсутствует знак ";". Подозреваю, что dev C++ здесь использует несколько другой синтаксис, чем Visual C++ (скоро хочу перейти на него или Borland, но пока нет такой возможности), что и вызывает ошибку, однако не знаю, как ее исправить. Вот мой код:

typedef vector <int> Array;

int main(int argc, char *argv[])
{
struct Data{
Data();
int Age;
string Name;
Array Responces;
};
Data::Data()
: Responces(3, 0)//на этой строке компилятор выдает ошибку
{
}
...
Подскажите, пожалуйста, как исправить этот код. Заранее спасибо!

6 ответов в теме “Нужна помощь со структурами с Bloodshed Dev-C++”

  1. 1
    Василий Степанов ответил:

    Как глупо… оказалось, что объявлять структуры нужно вне главной функции=)) Как говорится, на ошибках учатся… Вопрос снят) Спасибо, что зашли почитать)))

  2. 2
    Леонид Максимов ответил:

    имхо структуру можно объявлять и внутри функции (давно правда плюсами не пользовался). при этом определение методов должно идти в этом объявлении. т.е. что-нибудь вроде

    int main(int argc, char **argv)
    {
    struct Data{
    Data():Responces(3, 0) {};
    int Age;
    string Name;
    Array Responces;
    };

    return 0;
    }

    ЗЫ: лучше, наверно, исползовать классы – инкапсуляция и все такое…

  3. 3
    Василий Степанов ответил:

    Классы изучать уже начал – просто решил для начала быстренько попробовать структуры)) спс за совет)

  4. 4
    Valentin Pimenov ответил:

    Хе-хе, то что написано в этих исходниках и является классом. Ключевое слово "struct" не должно сбивать вас с толку.

  5. 5
    Леонид Максимов ответил:

    struct – это, безусловно, хорошо
    но скажи, часто ли оно используется для объявления классов? можно ведь забыть поставить private-модификатор и инкапсуляция пропадет…

  6. 6
    Valentin Pimenov ответил:

    http://ru.wikipedia.org/wiki/Инкапсуляция_(программи...

Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.