【问题标题】:c++ how do you implement a has relationship?c++ 你如何实现一个有关系?
【发布时间】:2020-05-03 12:34:37
【问题描述】:

例如: 我有很多预订: 该类有开始/结束日期和一个给我日期的函数。

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 访问? 如果我搜索房间 id 1,也会显示房间的预订情况。

谢谢。

【问题讨论】:

  • 也许在reservation 类中添加一个int room_id; 字段?
  • 能否请您向我解释更多,我仍然是初学者,很乐意收到更多信息。谢谢:)

标签: c++ visual-c++ c++17


【解决方案1】:

这是您的问题陈述:每个房间都有很多预订,每个预订都引用一个房间。基于此,我将其编写如下(您可以在这些类中添加您的东西)。

#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

}

【讨论】:

  • 我还是不明白。程序如何知道哪个预订属于哪个房间?对不起,我还是个初学者。我应该如何处理预订班的房间?
  • 对于任何特定的预订,您只需要调用一个特定的公共函数(不包括在我上面的示例中),它将返回其指针的副本,该指针指向它已保留的 Room 对象。 IE。 Room* getRoom() {return room;}
猜你喜欢
  • 2010-11-27
  • 1970-01-01
  • 2021-04-07
  • 2016-07-14
  • 2012-06-24
  • 2015-02-06
  • 1970-01-01
  • 1970-01-01
  • 2017-02-02
相关资源
最近更新 更多