求助C++多态的问题

来源:百度知道 编辑:UC知道 时间:2024/05/24 11:58:16
基类头文件
#include <string>
#include <iostream>
using namespace std;

class CCourse
{
friend ostream& operator<<(ostream& output, const CCourse &c);//负责输出的
public:
virtual int getScore() const=0; //获得课程成绩
virtual double getWeight() const=0; //获得课程权重

virtual int getObligatoryCredit() const { return creditHour;}
virtual int getElectiveNumber() const {return 1;}

CCourse(const string &n="", int ch=0):name(n),creditHour(ch){} //构造函数
CCourse(const CCourse &c); //拷贝构造函数
virtual ~CCourse(); //析构函数

const string& getcName() const {return name;}
virtual bool setGrade(int) = 0;//这两句有问题
virtual bool setGrade(char) = 0;//这两句有问题
void setName(const string &n) {name=n;}
int getCreditHour() const {return creditHour;}
void setCreditHour(int ch) {creditHour=ch;}
private:
string name;
int creditHour;
};
派生类:选修课

virtual bool setGrade(char);
virtual bool setGrade(int);

CElectiveCourse(const string &n="", int ch=0, char g='\0'); //构造函数
CElectiveCourse(const CElectiveCourse &ec):CCourse(ec),grade(ec.grade){} //拷贝构造函数
virtual ~CElectiveCourse();
这段好象有点问题.

CObligatoryCourse(const string &n="", int ch=0, int m=-1):CCourse(n, ch), mark(m){} //构造函数
CObligatoryCourse(const CObligatoryCourse& oc):CCourse(oc), mark(oc.mark){} //拷贝构造函数
我觉得这个错了.