Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 不同类对象的数组_C++_Arrays_Object - Fatal编程技术网

C++ 不同类对象的数组

C++ 不同类对象的数组,c++,arrays,object,C++,Arrays,Object,在Baza类中,我需要创建一个数组,其中包含来自ZadanietKST、ZadanieNumer、Zadanie4Odp类的对象。我怎样才能做到这一点 class Zadanie { protected: string tresc; }; class Zadanie4Odp : private Zadanie { private: string a,b,c,d; string poprawna; public: Zadanie4O

在Baza类中,我需要创建一个数组,其中包含来自ZadanietKST、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\u 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;
}
#包括
...
巴扎级
{
公众:
std::vector my_vector;
};
...
内部主(空)
{
巴扎我的巴扎;
//记住,如果你打算销毁物品,一定要妥善销毁
//使用此方法时不会出现内存泄漏!
my_baza.my_vector.push_back(新的ZadanietKST(//Insert Params//));
my_baza.my_vector.push_back(新的ZadanieNumer(//Insert Params//));
my_baza.my_vector.push_back(新的Zadanie4Odp(//Insert Params//));
...
返回0;
}

为什么是继承的私有访问说明符子类如何能够访问父类数据字段一个可怕的想法,这可以通过变量记录完成,Pascal风格,而不是使用继承,因为字段是预先知道的。