朋友功能是否可以创建新对象? C ++

时间:2012-04-25 18:16:38

标签: c++ class function friend

您好我正在尝试对学校系统进行少量模拟。

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

1 个答案:

答案 0 :(得分:1)

添加教师,从中删除教师的主要内容是什么?你需要一些教师的集合。您错过了SCHOOL的关键概念。一所学校有一个校长,大概只有一个,所以主要成员可以像PRINCIPAL principal;

一样简单

学校还有一系列教师。这是其中一个C ++模板库容器类模板的尖叫。这为您提供了一个主要对象可以轻松地将教师添加到教师/从中删除教师的内容。