যে wissen, অ্যারে সংজ্ঞা অনুযায়ী হোমোজিনাস। তাই আমাদের একটি অ্যারেতে একই টাইপের ডেটা রাখতে হয়। কিন্তু যদি আমরা ভিন্ন টাইপের ডেটা সংরক্ষণ করতে চাই, তবে ট্রিক কী হবে? C-এর মতো পুরনো ভাষায়, আমরা ইউনিয়ন ব্যবহার করে কৃত্রিমভাবে ভিন্ন টাইপগুলো এক টাইপে মিশিয়ে ফেলতে পারি। তারপর এই নতুন টাইপের উপর একটি অ্যারে সংজ্ঞায়িত করা যায়। এখানে একটি অ্যারে উপাদান আসলে কোন ধরনের অবজেক্ট ধারণ করছে তা একটি ট্যাগ দ্বারা নির্ধারিত হয়। একটি স্ট্রাকচার দেখি:
struct Vehicle {
int id;
union {
Bus b;
Bike c;
Car d;
}
};প্রোগ্রামারকে id ট্যাগ কীভাবে ব্যবহার করা হবে সে সম্পর্কে একটি কনভেনশন বানাতে হবে। উদাহরণস্বরূপ, id 0 হলে অর্থাৎ Vehicle আসলে একটি Bus ইত্যাদি। ইউনিয়ন Bus, Bike এবং Car-র মধ্যে সবচেয়ে বড় টাইপের জন্য মেমরি অ্যালোকেট করে। যদি অবজেক্টের আকারের মধ্যে বড় পার্থক্য থাকে, তবে এটি মেমরির দিক থেকে অপচয়জনক।
অবজেক্ট-ওরিয়েন্টেড ভাষায়, আমরা ইনহেরিটেন্স কনসেপ্ট ব্যবহার করতে পারি। ধরি আমাদের Vehicle নামে একটি ক্লাস আছে, এবং Bus, Bike, Car সেগুলোর সাব-ক্লাস। তাই যদি আমরা Vehicle-এর জন্য একটি অ্যারে সংজ্ঞায়িত করি, তবে সেটি তার সব সাব-ক্লাসও ধারণ করতে পারবে। এটি একটি অ্যারেতে একাধিক টাইপের ডেটা সংরক্ষণে সাহায্য করে।