Пустота внутри структуры c++ не изменяет одно значение структуры

У меня есть эта структура

typedef struct _flight {

    FlightId flightId;

    int totalPlaces;
    int booked;

    float currentPrice;
    float initialPrice;

    void Print(int index);
    void RecalculatePrice();
    bool BookSeats(int amount);
} Flight;

И это вызывает проблемы, BookSeats:

bool Flight::BookSeats(int cantidad) {
   if (booked + cantidad <= totalPlaces) {
      booked = booked + cantidad;
      RecalculatePrice();
      return true;
   }
   return false;
}

Когда я вызываю BookSeats, изменение значения не сохраняется в конце метода (например, когда вы передаете одну переменную по значению в аргументы), я попытался использовать

this->booked = booked + cantidad; // but doesn't work too;

Что я делаю неправильно? Я не знаю, является ли эталонная проблема, но... переменная и void находятся внутри структуры. Я не понимаю.

-2
источник поделиться
1 ответ

Перед использованием переменной вам необходимо инициализировать ее, установив значение. Если ваш компилятор принимает c++ 11, вы можете сделать это непосредственно внутри класса/структуры, например:

struct Flight {
    int booked = 0; // in-class initialization (c++11)
};

Для старших компиляторов c++ конструктор Flight должен инициализировать своих членов:

struct Flight {
    Flight() : booked(0) {}
    int booked; 
};
0
источник

Посмотрите другие вопросы по меткам или Задайте вопрос