我有一个对象数组,我无法弄清楚如何访问对象内部的其他对象。
在这种情况下,对象的数组称为__setstate__
。我试图访问ArrayExam
类中的对象。
我尝试使用ExamRoom
,但仍然没有运气。
有什么想法吗?
标题
ArrayExam[0]->Doc = new Doctor();
标题的功能
#include"IOheader.h"
class Person
{
protected:
string name;
string MEDcode;
public:
Person();
Person(string sName,string sCode);
void SetName(string sName);
string ReturnName();
string ReturnMEDcode();
};
class Doctor : public Person
{
private:
int room;
public:
Doctor() :Person() { room = 0; };
Doctor(string sName, string sCode, int iRoom) : Person(sName, sCode) { room = iRoom; };
void SetRoom(int iRoom);
int ReturnRoom();
};
class Patient :public Person
{
private :
string EMcode;
int age;
public:
Patient() :Person() { EMcode = ""; age = 0; };
Patient(string sName, string sCode,int iAge, string sEMcode) : Person(sName, sCode) { age = iAge; EMcode = sEMcode;};
};
class Child :public Patient
{
public:
Child() :Patient() {};
Child(string sName, string sCode, int iAge, string sEMcode) : Patient(sName,sCode,iAge,sEMcode) {};
};
class ExamRoom
{
protected:
Person *Doc;
Person *Pat;
queue <WaitRoom> WaitQue;
public:
ExamRoom();
};
class WaitRoom
{
private:
Person *Wait;
public:
WaitRoom() {};
};
class Hospital
{
private:
ExamRoom *ArrayExam[50];
public:
Hospital();
void Test();
};
答案 0 :(得分:0)
ExamRoom
的成员(例如Doc
)受到保护。这就是你无法访问它们的原因。要直接访问它们,例如ArrayExam[0]->Doc
,您需要公开成员。或者,您可以创建“setter”方法来间接设置成员变量。例如,对于Doc
,您可以创建方法
SetDoc(Person* doc)
{
this->Doc = doc;
}
由于您是为ExamRoom
实例等对象手动分配空间,因此应确保释放所有不再需要后动态创建的对象。