ساختمان دادهی آرایه به صورت زیر پیادهسازی شده است:
- classای به نام Array تعریف شده است.
- این class به صورت template پیاده سازی شود (بدون تغییر در پیادهسازی class بتوان نوع دادههای مختلف را در آن تعریف کرد)
- دو سازنده برای این class تعریف شده است. یکی ورودی آن تعداد خانههای اولیه برای آرایه و دومی سازندهی کپی.
- برای این class تابع مخرب تعریف شده است.
- class شامل توابع زیر است:
- append: دادهای را از ورودی گرفته و به انتهای آرایه اضافه می کند.
- extend: دو نسخه از این تابع موجود باشد: یکی آرایهای از نوع دادههای class و یکی اشارهگر به شئای از نوع Array.
این تابع ورودی خود را به انتهای دادهها اضافه میکند.
- عملگر [ ] برای class تعریف شده است و دادهی ذخیره شده در اندیس ورودی را بازمی گرداند. اندیس ورودی میتواند منفی باشد. در این صورت اندیس از آخر آرایه حساب میشود. این تابع در برابر اندیس خارج از محدوده پیام خطا چاپ می کند. برای مثال اگر آرایه ۴ خانه داشته باشد؛ اندیس ۴ و بیشتر و اندیس ۵- و کمتر ایجا خطا می کند.
دادهی بازگشتی بایستی قابلیت مقدار دهی دارد - تمامی حافظههای مصرفی (تعریف اشارهگر و تخصیص حافظه با عملگر new) پس از اتمام کار آزاد می شوند.
دانلود سورس پیاده سازی ساختمان دادهی آرایه با سی پلاس پلاس