C ++, как вы реализуете отношения? - PullRequest
0 голосов
/ 03 мая 2020

например: я получил большие оговорки: у класса есть дата начала / окончания и функция, которая дает мне дату.

class reservation{
    private:
    datetime start;
    datetime end;

    public:
    reservation(stardatetime, enddatetime): start(stardatetime), end(enddatetime)
      {

      }

    std::list<std::string> get_reservation()
      {
        for example: return start; 
        }
    };

и у меня есть конференц-зал класса, который можно забронировать один раз в другой.

  class room{
        private: 
        int room_ID;
        public:
        room(int id):room_ID(id)
          {
          }
       void get_room(){
           return room_id;
           }
        }

, что означает, что каждая комната имеет несколько бронирований. Как я могу получить доступ через номер комнаты через бронирование? если я ищу номер id 1 , также будет отображено бронирование номера.

Спасибо.

1 Ответ

0 голосов
/ 03 мая 2020

Вот ваша формулировка проблемы: в каждой комнате много бронирований, и в каждой брони есть ссылка на одну комнату. Исходя из этого, я написал бы это следующим образом (вы можете добавить свои вещи в эти классы).

#include <iostream>
#include <vector>
using namespace std;

class Room; //forward declaration

class Reservation {
private:
    Room* room;
public:
    Reservation(Room* roomPtr) {
        room = roomPtr;
    }
};

class Room {
    vector<Reservation> reservations;
};


int main(){

    Room room[10];  //an array of 10 rooms with no reservations (calls def.constructor of each Room)
    Reservation r1(&room[0]);   //reservation object r1 reserving room[0]
    Reservation r2(&room[1]);   //reservation object r2 reserving room[1]
//  ...more stuff goes here

}
...