**下面是我的头文件。在我的main.cpp文件中,我需要创建三个Student实例并将它们添加到Course对象中。这是怎么做到的?我似乎无法在任何教科书或网上找到答案。然后我需要实例化至少一个Teacher对象。然后将该Teacher对象添加到我的Course对象中。
我怎么能做所有这些事情?感谢。**
#pragma once
class Student : Course{
private:
std::string firstName;
std::string lastName;
int age;
std::string address;
std::string city;
std::string phone;
public
Student()=default;
std::string getFirstName();
void setFirstName(std::string name_two);
std::string getLastName();
void setLastName(std::string name_two);
std::string getAddress();
void setAddress(std::string address);
int getAge();
int setAge(age2);
void getCity();
std::string setCity(city2);
void getPhone();
std::string setPhone();
void GradeStudent();
std::string SitInClass();
~Student();
};
class Teacher : Course{
private:
std::string firstName;
std::string lastName;
int age;
std::string address;
std::string city;
std::string phone;
public
Teacher()=default;
std::string getFirstName();
void setFirstName(std::string name_two);
std::string getLastName();
void setLastName(std::string name_two);
std::string getAddress();
void setAddress(std::string address);
int getAge();
int setAge(age2);
void getCity();
std::string setCity(city2);
void getPhone();
std::string setPhone();
void GradeStudent();
std::string StInClass();
~Teacher();
};
答案 0 :(得分:1)
我会将您的设计更改为以下
class Student
{
// member variables and methods
};
class Teacher
{
// member variables and methods
};
class Course
{
public:
void add_student(Student const& student) { students.push_back(student); }
// more methods
private:
Teacher teacher;
std::vector<Student> students;
};
在这种情况下,您的Student
和Teacher
不是Course
的类型,因为这在语义上没有意义。相反,Course
是学生和教师的聚合。
答案 1 :(得分:0)
杰西卡 我必须同意molbdnilo,“将一个类的实例添加到另一个类的对象...与...制作后代类的实例之间存在逻辑差异。
你的陈述序列是关闭的还是 - 我不知道是什么。
我怀疑你真正需要做的是拥有一个“课程”课程,其中包含一个“学生”课程和一个“教师”课程,你要制作这些课程的实例。然后它们将存在于“Course”类的逻辑实例中。例如,您创建一个名为“Chemistry”的“Course”类的实例,然后使用该实例中的Student类创建三个名为“Moe”,“Joe”和“Floe”的学生。然后在化学实例中使用教师课程,让一位名叫“威利化学家”的老师。
此时,Course类的Chemistry实例将“包含”三个学生类实例和一个教师类实例。
此时这是我的一个疯狂猜测。
如果您提供“课程”课程定义,那将非常有用。
您从哪里获得“学生”和“教师”课程定义?
提供完整的问题和信息以及“课程”类定义。那么也许其他人可以帮忙。 博士
答案 2 :(得分:0)
我认为班级学生和班级老师都不应该继承班级课程。
课程课程是学生和教师的容器。
类Student和类Teacher可以继承,例如抽象类Person。
至于课程课程,那么它内部可以使用一些标准容器,例如std::vector<Person *>
,您可以为该类重载operator +=
或定义名称为enroll
的函数或add
所做的就是在标准容器上推送新人..