将三个不同类的对象存储在一个数组中

Vij*_*jay 0 c++

这是一个面试问题:我们如何存储让我们说三个完全独立的不同类的对象.

我的回答是: 创建一个存储所有void指针的数组.喜欢 :

void *array[];
Run Code Online (Sandbox Code Playgroud)

并存储所有对象的指针.数组元素可以很多.但是为了检索元素,我说我们可以使用动态模型或静态模型!我认为这是错误的答案.我认为dynamic cast并且static cast应该在依赖的类中使用.如果我错了,请纠正我.

如果动态强制转换和静态强制转换不起作用reinterpret cast.我们可以使用.

但这是完成这项任务的正确方法吗?

Lig*_*ica 5

你为什么要这么复杂?

struct T {
   T1 obj1;
   T2 obj2;
   T3 obj3;
};
Run Code Online (Sandbox Code Playgroud)

如果你的意思是你有一个对象数组,并且每个元素可以是三个不同的,不相关的类型中的任何一个,那么这是一个愚蠢的面试问题,因为这是一个愚蠢的事情.

(是的,你会考虑reinterpret_cast是否因为有限的工作机会和消费食物的迫切需要而被迫采用这种方法.)