簡體   English   中英

繼承的元素C ++

[英]Inherited elements C++

我有兩個c ++類,其中一個繼承了學生數據庫的抽象基類。 基類是包含所有學生信息(名稱,課程和成績的ID向量)的記錄:

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;
};

我需要能夠在下面的類的addCourse函數中訪問向量cname和cmark

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){

    }

我不知道如何在不像我使用degree構造函數那樣在基類中set函數的情況下執行此操作。

我可以在基類中創建一個set函數,但是我更希望一些不使用函數來初始化繼承的元素的方法,只是為了使代碼少一點混亂,這可能嗎? 我考慮過使用this->cname但這給了我錯誤。

我需要能夠在下面的類的addCourse函數中訪問向量cname和cmark

只需訪問它們,它們就受到保護,因此派生類可以訪問:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM