مفاهیم اساسی پایگاه داده
تقریبا بیشتر برنامه های کاربردی امروزه به روش سیستم پایگاه داده طراحی می شوند. پایگاه داده امکان ذخیره سازی مجتمع داده با حداقل افزونگی و استفاده اشتراکی توسط کاربران مختلف تحت یک کنترل متمرکز را می دهد.
مفاهیم اساسی پایگاه داده
تقریبا بیشتر برنامه های کاربردی امروزه به روش سیستم پایگاه داده طراحی می شوند. پایگاه داده امکان ذخیره سازی مجتمع داده با حداقل افزونگی و استفاده اشتراکی توسط کاربران مختلف تحت یک کنترل متمرکز را می دهد.
دستورات پیش پردازنده که اغلب برای تعریف ثابت و ماکرو یا ضمیمه کردن فایل بکار می روند قبل از ترجمه برنامه تفسیر و تغییراتی را در متن برنامه ایجاد می کنند. پیش پردازنده (preprocessor) بخشی از کامپایلر است که قسمت هائی از برنامه را، قبل از اینکه کل آن توسط کامپایلر ترجمه شود، مورد ارزیابی قرار می دهد. برنامه نویس می تواند دستوراتی را در برنامه خود درج کند که مستقیما پیش پردازنده را فراخوانی کند به این دستورات پیش پردازنده می گویند. پیش پردازنده ها ممکن است باعث تغییر متن برنامه قبل از تحویل آن به کامپایلر شوند.
فضاهای اسمی برای پیاده سازی اجزای نرم افزاری و کتابخانه های جدید بدون ایجاد برخورد اسامی با اجزای موجود بکارگرفته می شوند. در این صفحه علاوه بر شرح فضاهای اسمی به انواع کلاس های حافظه نیز اشاره شده است.
استثناها خطاهای درحال اجرا هستند. به طور معمول خطاها توسط دستور if تشخیص و در صورت برقرار بودن شرط عمل مناسب، که اغلب نمایش پیغام و اتمام برنامه بود، انجام می گرفت. راه دیگر هنگام مواجه شدن با خطا گیر انداختن آن هنگام پیش آمدن شرایط خطاست. کدی که ممکن است باعث خطا شود اجرا می شود و هر خطائی که ایجاد می شود گرفته می شود و عمل مناسب انجام می گیرد. بلاک های try-catch بر اساس این مفهوم عمل می کنند. مدیریت خطاها به طور سطحی در اینجا معرفی می شود.
چندریختی در C++ توسط توابع مجازی پیاده سازی می شود. تابع مجازی تابع عضوی است که انتظار می رود در کلاس های مشتق شده دوباره تعریف شود. درک چندریختی بدون استفاده از توارث و انتزاع غیرممکن است. چندریختی (polymorphism) یکی از ویژگی های زبان های شیءگراست. به واسطه چندریختی توابع می توانند به شیوه های مختلف پیاده سازی شوند ولی از طریق یک اسم یکسان در دسترس قرار بگیرند. چندریختی در ++C به دو شکل پشتیبانی می شود؛ در زمان کامپایل و در زمان اجرا. سربارگذاری توابع و عملگرها نمونه هائی از چندریختی در زمان کامپایل هستند. چندریختی در زمان اجرا با تلفیق وراثت و توابع مجازی حاصل می شود.
وراثت اجازه ایجاد یک کلاس پایه عمومی که اشیا در خصوصیات آن مشترک هستند را می دهد. کلاس های مشتق شده خصویات کلاس پایه را به ارث می برند. گاهی ناگذیریم کلاس جدیدی ایجاد کنیم که شباهت هائی با کلاسی دارد که قبلا ایجاد شده است و می خواهیم عملکردهائی را به آن اضافه کنیم این عمل توسط ارث بری (inheritance) امکان پذیر است. وراثت یکی از پایه های برنامه نویسی شیء گرائی است.
مهمترین تفاوت C و C++ اشیا هستند. این فصل مقدمه ای بر تئوری شیءگرائی است. شیءگرائی مفهوم کلاس ها را معرفی می کند که چهار ویژگی کلی را در شیءگرائی نشان می دهند: انتزاع، کپسوله کردن، توارث و چندریختی. تعریف کلاس و اجزای کلاس، نحوه تعریف تابع عضو و تابع دوست، سازنده ها و مخرب ها در اینجا توضیح داده خواهد شد.
اکثر برنامه ها از فایل به منظورذخیره دائمی داده بر روی دیسک استفاده می کنند. فایل ها در ++C در شکل یک جریان (stream) ورودی/خروجی هستند. در این بخش انواع فایل ها، نحوه بازکردن و بستن فایل، خواندن و نوشتن توضیح داده خواهد شد.
در این بخش مبحث مهم اشاره گرها در C معرفی می شود. اشاره گر متغیری است که آدرس متغیر دیگری را نگه می دارد که اصطلاحا گفته می شود دارد به آن متغیری اشاره می کند. به دو عملگر * (address-of operator) و & (indirection operator) با اشاره گرها نیاز می شود. اشاره گرها روش قدرتمند و انعطاف پذیری برای کار با انواع داده ها در برنامه نظیر آرایه ها، رشته ها و ساختمان ها است. کاربرد اشاره گرها برای استفاده از حافظه پویا هم در اینجا توضیح داده خواهد شد.
در این قسمت نوع های داده ها پیچیده تر که توسط خود برنامه نویس در برنامه تعریف می شوند نظیر ساختمان، union و شمارشی معرفی می شوند. ساختمان نوع داده ای است که شامل متغیربا انواع مختلف است که هرکدام را یک جزء از ساختمان می نامند. یونیون مشابه ساختمان است با این تفاوت که کلیه اجزای آن از یک فضای مشترک در حافظه استفاده می کنند. یعنی در هرلحظه از یک جزء آن می توان استفاده کرد.