我正在进行一项任务,我们使用指针成员和内部聚合为会议室创建会议。我被困在教室里。这是我们需要使用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;
}
非常感谢你的帮助。