我必须实施一所大学.
我有一门课程,有儿童班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课程和选修课程子课程相同)
在Course类的函数中(它们不是无效的,比如getSemester等等).我只是做dynamic_cast来计算它的类型.
我有这个问题:
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课程的对象”.
PG和Elective也一样!
但是,在我对hte课程的定义中,CS课程并不是抽象的!
解决方法 CSCourse类是抽象的.您已在课程中声明了纯虚函数注册,但未在CSCourse中提供实现.
你的编译器无疑也告诉了你这一点.
总结以上是内存溢出为你收集整理的不能分配抽象类型的对象 – 但是类不是抽象的! (C )全部内容,希望文章能够帮你解决不能分配抽象类型的对象 – 但是类不是抽象的! (C )所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)