2017-06-12 47 views
-2

在類Baza中,我需要創建一個數組,其中包含來自類ZadanieTekst,ZadanieNumer,Zadanie4Odp的對象。我怎樣才能做到這一點?不同類對象的數組

class Zadanie 
{ 
    protected: 
     string tresc; 
}; 

class Zadanie4Odp : private Zadanie 
{ 
    private: 
    string a,b,c,d; 
    string poprawna; 
    public: 
    Zadanie4Odp(string tresc1,string a1,string b1,string c1,string d1,string pop) 
    { 
     tresc=tresc1; 
     a=a1; 
     b=b1; 
     c=c1; 
     d=d1; 
     poprawna=pop; 
    } 
}; 

class ZadanieNumer : private Zadanie 
{ 
    private: 
     int poprawna; 
    public: 
    ZadanieNumer() 
    { 
    } 
    ZadanieNumer(string tresc1,int pop) 
    { 
     tresc=tresc1; 
     poprawna=pop; 
    } 
}; 

class ZadanieTekst : private Zadanie 
{ 
    private: 
     string poprawna; 
    public: 
     ZadanieTekst(string tresc1,string pop) 
     { 
      tresc=tresc1; 
      poprawna=pop; 
     } 
}; 

class Baza 
{ 
//here must be array of objects 
}; 

我正在爲我的學校項目做,而我的問題是我無法解決。 預先感謝幫助:)

+0

爲什麼卻私接繼承的說明符子類如何能夠訪問父類數據字段 – abcOfJavaAndCPP

+0

一個可怕的想法,這可以用變體記錄,帕斯卡風格來完成,而不是使用繼承,因爲這些字段是事先已知的。 –

回答

-2

我認爲,沒有把使用std ::的unique_ptr或std ::陣列的工作太多了,這樣的事情將是有益的:

#include <vector> 

... 

class Baza 
{ 
    public: 
     std::vector<Zadanie*> my_vector; 

}; 

... 

int main(void) 
{ 
    Baza my_baza; 

    // Remember to properly destroy objects if you plan to 
    // use this approach without memory leaks! 
    my_baza.my_vector.push_back(new ZadanieTekst(//Insert Params//)); 
    my_baza.my_vector.push_back(new ZadanieNumer(//Insert Params//)); 
    my_baza.my_vector.push_back(new Zadanie4Odp(//Insert Params//)); 

    ... 

    return 0; 
}