gpt4 book ai didi

c++ - 友元函数是否可以创建新对象? C++

转载 作者:行者123 更新时间:2023-11-28 08:05:49 24 4
gpt4 key购买 nike

您好,我正在尝试对学校系统进行一些模拟。

我想知道我是否有 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);
}

最佳答案

校长要向什么地方添加老师,从中删除老师?你需要在某个地方召集一批教师。您缺少一个关键概念,即 SCHOOL 的概念。一所学校有一个校长,大概只有一个,所以校长成员可以像 PRINCIPAL principal;

这样简单

一所学校也有一批教师。这是 C++ 模板库容器类模板之一的尖叫。这为您提供了一些东西,主体对象可以轻松地向其中添加教师/从中删除教师。

关于c++ - 友元函数是否可以创建新对象? C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10321413/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com