不能分配抽象类型的对象 – 但是类不是抽象的! (C )
发布时间:2020-12-16 10:32:28 所属栏目:百科 来源:网络整理
导读:我正在做系统编程的功课. 我必须实施一所大学. 我有一门课程,有儿童班ComputerScience课程班,PG课程班和选修课程班. class Course{public: virtual void teach(); virtual void reg(Student s)=0; std::string getName(); std::string getDepartment(); int
我正在做系统编程的功课.
我必须实施一所大学. 我有一门课程,有儿童班ComputerScience课程班,PG课程班和选修课程班. class Course { public: virtual void teach(); virtual void reg(Student &s)=0; std::string getName(); std::string getDepartment(); int getSemester(); int getMinGrade(); void addStudent(Student *s); void removeStudent(Student *s); protected: std::string _department; std::string _name; int _semester; int _minGrade; std::vector<Student*> studentsList; }; class CSCourse : public Course { public: CSCourse(); CSCourse(std::string department,std::string name,int semester,int mingrade); ~CSCourse(); std::string getName(); std::string getDepartment(); int getSemester(); int getMinGrade(); void addStudent(Student *s); void removeStudent(Student *s); }; (PG课程和选修课程子课程相同) 我有这个问题: courseVector是: std::vector<Course*> coursesVector 和dp变量是一个包含CS,PG或Elective的字符串.总的来说,我这样做: if (dp == "CS") { CSCourse *csCourse = new CSCourse(dp,name,semester,minGrade); coursesVector.push_back(csCourse); } 它给了我“不能分配抽象类型CS课程的对象”. 但是,在我对hte课程的定义中,CS课程并不是抽象的! 解决方法
CSCourse类是抽象的.
您已在课程中声明了纯虚函数注册,但未在CSCourse中提供实现. 你的编译器无疑也告诉了你这一点. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |