3混乱的规则

时间:2015-10-18 20:03:02

标签: c++ arrays pointers inheritance constructor

我正在进行一项任务,我们使用指针成员和内部聚合为会议室创建会议。我被困在教室里。这是我们需要使用Rule of 3的地方,但是,我们还有其他函数要编写,我不知道在函数头中如何处理这个问题。说明如下:

使用以下私有属性设计实现内部聚合的类Room: string d_name 会议** d_schedule是一个指向指针的指针,这里是一个指向会议指针数组的指针。 int d_n应该保持当前会议次数的会议。

该类还应定义一组函数: 构造函数Room(字符串_name)。 setter和getter void setName(string)和string getName()。 bool add(会议*)为这个房间增加一个额外的会议。该函数应始终返回true,因为您不需要检查此赋值中的时间冲突。应该没有固定数量的会议,但是这个函数应该在每次调用add时将d_schedule中的数组增加一个。 void print(),它简单地遍历d_schedule中的所有会议,并以任意顺序打印它们。

由于类Room具有指针成员并且要实现内部聚合,因此必须实现规则3(但是您可以跳过赋值运算符,使其有效地成为2的规则。)

我已经为room.h开始了这个。

#include "meeting.h"

class Room{
private:
  std::string d_name;
  Meeting** d_schedule;
  int d_nMeetings;

public:
  Room(std::string _name);
  void setName(std::string);
  std::string getName();
  bool add(Meeting*);
  void print();
};

和room.cpp

#include "room.h"
#include <iostream>

Room::Room(std::string _name)
{
  d_name = name;
  d_nMeetings = 0;
}

void Room::setName(std::string)
{
  d_name = name;
}

std::string Room::getName()
{
  return d_name;
}

bool Room::add(Meeting*)
{
  d_schedule++;
  d_nMeetings++;
}

这是其他两个类的代码:

Meeting.h

#include <vector>
#include <string>
#include "item.h"

class Meeting: public Item{
protected:
  bool d_coffee;
  std::vector<std::string> d_participants;

public:
  Meeting(std::string, Time, int, bool, std::vector<std::string>, int);
  void print();
};

Meeting.cpp

#include "meeting.h"
#include <iostream>
#include <string>
#include <vector>
#include "item.h"

Meeting::Meeting(std::string _what, Time _deadline, int _duration, bool         _coffee, std::vector<std::string> _participants, int _priority = 0) :      Item(_what, _deadline, _duration, priority = 0)
{
  d_coffee = _coffee;
  d_participants = _participants;
}

void Meeting::print()
{
   Item::print();
}

Item.h

struct Time{
  int d_year;
  int d_month;
  int d_day;
  int d_hour;
  int d_minutes;
};

class Item{
protected:
  std::string d_what;
  Time d_deadline;
  int d_duration;
  int d_priority;

public:
  Item(std::string, Time, int, int);
  void print();
};

Item.cpp

#include "item.h"
#include <iostream>
#include <string>

Item::Item(std::string _what, Time _deadline, int _duration, int _priority = 0)
{
  d_what = _what;
  d_deadline = _deadline;
  d_duration = _duration;
  d_priority = _priority;
}

void Item::print()
{
  std::cout << " " << d_what << "Deadline:  " << d_deadline.d_year << "/" <<   d_deadline.d_month << "/" << d_deadline.d_day << " " <<
 d_deadline.d_hour << " : " << d_deadline.d_minutes << " Duration: " << d_duration << " Priority: " << d_priority << std::endl;
}

非常感谢你的帮助。

0 个答案:

没有答案