不同类对象的数组

Array of different classes objects

本文关键字:数组 对象 同类      更新时间:2023-10-16

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

我为我的学校项目做这件事,这是我无法解决的问题。提前感谢您的帮助:)

我认为

,如果不要使用std::unique_ptr或std::array做太多工作,这样的东西会很有用:

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