2013-05-05 74 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); 
}