【发布时间】:2012-04-25 18:16:38
【问题描述】:
您好,我正在尝试对学校系统进行一些模拟。
我想知道我是否有 2 个课程: 1:校长 2:老师 那么 Principal 类的方法是否可以创建 Teacher 类的新对象?
这是我想做的(方法 AddTeacher):
class PRINCIPAL
{
char* name;
int wage;
unsigned long long id;
public:
void showinfo() const;
PRINCIPAL();//constructor, but there will be overloaded constructors in this class;
~PRINCIPAL();
void addTeacher(char* nameofobject,char* name,char* position,int wage, unsigned long long id);
void removeTeacher(TEACHER& teacher); //method which will remove object of class TEACHER;
void changeTEACHERSsalary(TEACHER& teacher);
void changeTEACHERSposition(TEACHER& teacher);
}
class TEACHER
{
char* name;
char* position;
int wage;
unsigned long long id;
friend class PRINCIPAL;
public:
TEACHER(char* name,char* position,int wage, unsigned long long id);
~TEACHER();
void gradeStudent(STUDENT& s,int grade,char* subject);
void changestudentsgrade(STUDENT& s,char* subjectname,int oldgrade,int newgrade);
void ViewStudentsAverageFromSubject(STUDENT& s, char* subjectname) const;
void ViewStudentsAverage(STUDENT& s) const; // average from all subjects;
void ViewClassAverage(KLASA& k) const; // average from all subjects of whole object KLASA(class);
void ViewClassAverageSubject(KLASA& k,char* subjectname) const; // average from selected subject of whole object KLASA(class);
}
另外我想问一下它是否可以做以下事情:我想做一个约束,它只允许 Principal 类的一个对象存在。如果可能的话,你能解释一下怎么做吗?
提前谢谢你。
P.S addTeacher 看起来像这样:
void addTeacher(char* nameofobject,char* name,char* position,int wage, unsigned long long id){
TEACHER nameofobject(char* name,char* position,int wage, unsigned long long id);
}
【问题讨论】:
-
如果你只想要一个单一的实例,让 Principal 成为一个单例类,但这是有问题的。否则在 Teacher 类中引入一个静态 Principal 对象。
-
附带说明,使用
std::string而不是char*,让自己的生活更轻松。 -
我不明白您要删除 TEACHER 的内容。来自某种容器?
-
好吧 removeTeacher 方法应该删除班主任的对象-这是另一个问题怎么做?