基类对象/子对象/等的数组/向量 是否可以在C++中创建一个数组或向量,它既有基类又有派生类的对象,都是一个?例如,如果我有一个父类和一个子派生类,我可以将每个类的一个对象放入数组/向量中吗?如果我从son派生出另一个类,我可以把一个对象放在那个数组/向量中吗?如果可能的话,我更愿意通过两种方式(包括数组和向量)获得图像。

基类对象/子对象/等的数组/向量 是否可以在C++中创建一个数组或向量,它既有基类又有派生类的对象,都是一个?例如,如果我有一个父类和一个子派生类,我可以将每个类的一个对象放入数组/向量中吗?如果我从son派生出另一个类,我可以把一个对象放在那个数组/向量中吗?如果可能的话,我更愿意通过两种方式(包括数组和向量)获得图像。,c++,arrays,object,vector,C++,Arrays,Object,Vector,我认为(TM)在这里应该做的是使用std::shared\u ptr对象的std::vector(或列表或任何其他容器)。然后,当您从列表中选择一个对象时,您可以将其作为一般对象(作为基类对象)处理,或向他提出特定类型的问题,即尝试将其动态转换为特定的派生类型。您试图实现什么?不过我不明白你的问题。你是指对象还是实例?!否则我会说,你创建一个向量,然后做一些类似于vector.emplace()的事情,但正如我所说的。我不知道,你想做什么。@1nflktd是的,我刚刚试过,但我认为它会将派生对象

我认为(TM)在这里应该做的是使用std::shared\u ptr对象的std::vector(或列表或任何其他容器)。然后,当您从列表中选择一个对象时,您可以将其作为一般对象(作为基类对象)处理,或向他提出特定类型的问题,即尝试将其动态转换为特定的派生类型。

您试图实现什么?不过我不明白你的问题。你是指对象还是实例?!否则我会说,你创建一个向量,然后做一些类似于vector.emplace()的事情,但正如我所说的。我不知道,你想做什么。@1nflktd是的,我刚刚试过,但我认为它会将派生对象向上投射到类型父亲,所以这不好。@Ryncops为什么不好?更详细地解释问题所在。好吧,这些类中的每一个都有一个print()方法。当我迭代这个向量打印向量中的每个元素时,它只打印基类中的数据,而不打印派生类中的数据。这就是为什么我相信它向上投射。。。但是,话说回来,我可能错了,因为我对上行/下行的了解很差。