c++ 你如何实现一个有关系?

Posted

技术标签:

【中文标题】c++ 你如何实现一个有关系?【英文标题】:c++ how do you implement a has relationship? 【发布时间】: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; 字段? 能否请您向我解释更多,我仍然是初学者,很乐意收到更多信息。谢谢:) 【参考方案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;

以上是关于c++ 你如何实现一个有关系?的主要内容,如果未能解决你的问题,请参考以下文章

python如何实现类似php的引用赋值

C++ 八叉树容器

如何在 C++ 或 C 中浏览文件夹?

C++ LRU 缓存 - 需要有关如何提高速度的建议

Doctrine|ORM|Symfony:可能与接口或多个实体有关系

如何抑制有关 C++ 中未使用变量的警告?