2013-05-05 79 views
0

我有两个C++类,一个继承学生数据库的抽象基类。 的基类是包含了所有学生信息记录(名称,课程ID矢量&引号):继承元素C++

class student{ 
protected: 
    string fName,sName; 
    int id; 
    vector<string> cname; 
    vector<double> cmark; 
public: 
    virtual ~student(); 
    virtual void addClass(string name, double mark)=0; 
}; 

我需要能够访问向量CNAME和cmark在addCourse功能在下面类

class degree : public student{ 
public: 
    degree(string f, string s, int i){ 
     this->setName(f,s); 
     this->setID(i); 
    } 
    ~degree(); 

    void AddCourse(string name, int mark){ 

    } 

我不知道如何做到这一点无需在基类的一个set功能就像我与degree构造函数中完成。

我只能在基类中的一组功能,但我宁愿初始化继承元素,而无需使用功能的一些方法,只是为了使代码少凌乱,这可能吗?我想过使用this->cname,但那给了我错误。

+1

使用'this-> cname'得到了什么错误? – 2013-05-05 13:30:01

+1

您可以访问“AddCourse”中的两个矢量。 – juanchopanza 2013-05-05 13:30:07

+1

如果学位的学生继承,你基本上是断言学位是学生。这听起来不对。 – 2013-05-05 16:47:56

回答

0

我需要能够访问向量CNAME和cmark在addCourse功能在下面的类

刚刚访问它们,保护它们,所以派生类访问:

void AddCourse(string name, int mark){ 
    cname.push_back(name); 
    cmark.push_back(mark); 
}