2017-06-12 4 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; 
} 
関連する問題