CGI چیست؟ رابط دروازه مشترک (Common Gate interface) یا CGI، مجموعهای از استانداردها میباشد که چگونگی ردوبدل کردن اطلاعات بین سرور و یک اسکریپت دلخواه را تعریف میکند. مشخصات فعلی CGI توسط NCSA نگهداری میشود.CGI ،NCSA را به صورت زیر تعریف میکند. رابط دروازه مشترک، استانداردی برای دروازه خروجی برنامه …
ادامه نوشته »چند نخی یا Multithreading در ++C
چند نخی شکل ویژهای از چند وظیفهای (multitasking) است. چند وظیفهای خاصیتی است که به کامپیوتر این امکان را میدهد تا دو یا چند برنامه را به طور همزمان اجرا کند. در حالت کلی، دو نوع چند وظیفهای وجود دارد: مبتنی بر پروسس (process-based) و مبتنی بر نخ (thread-based). چند …
ادامه نوشته »مدیریت سیگنالها در ++C
سیگنالها وقفههایی (interrupt) هستند که از جانب سیستم عامل به یک پروسس (process) تحویل داده میشوند و میتوانند یک برنامه را به صورت دائمی پایان دهند. میتوان با فشردن کلید Ctrl+C در لینوکس، یونیکس، Mac OS X یا ویندوز یک وقفه ایجاد کرد. سیگنالهایی وجود دارند که یک برنامه نمیتواند …
ادامه نوشته »پیشپردازندهها یا Preprocessor در ++C
پیش پردازندهها دستوراتی هستند که به کامپایلر اعلام خواهند کرد که اطلاعات را پیش از آغاز عملیات کامپایل، چگونه پیش پردازش کنند. همه دستورات پیشپردازنده با # آغاز میشوند. در هر خط، قبل از دستور پیش پردازنده فقط استفاده از کارکترهای فضای خالی مجاز است. دستورات پیشپردازنده دستورات ++C به …
ادامه نوشته »الگوها یا Templates در ++C
در این جلسه به بررسی الگوها یا Templates در ++C خواهیم پرداخت. الگوها پایه و اساس برنامهنویسی جنریک (generic) میباشند. در این برنامهنویسی، کد به روشی نوشته میشود که به هیچ نوع داده خاصی وابسته نباشد. یک الگو طرح یا فرمولی برای ساختن یک کلاس یا تابع جنریک است. کانتینرهای …
ادامه نوشته »فضای نام یا Namespace در ++C
وضعیتی را تصور کنید که دو فرد با اسم مشابه یعنی Zara، در یک کلاس داریم. اگر بخواهیم بین آنها تفاوت روشنی به وجود بیاوریم، مجبور خواهیم بود که علاوه بر نام آنها از اطلاعات اضافی مانند محل سکونت – اگر در جاهای متفاوتی از هم زندگی میکنند – و …
ادامه نوشته »حافظه پویا در ++C
درک مناسب از نحوه عملکرد حافظه پویا (داینامیک) کمک شایانی به برنامه نویسان ++C خواهد کرد. حافظه در برنامه ++C به دو بخش تقسیم خواهد شد. Stack: همه متغیرهای تعریف شده درون تابع در حافظه stack ذخیره خواهند شد. Heap: این بخش، حافظه استفاده نشده برنامه است و میتوان در …
ادامه نوشته »محصورسازی داده (Data Encapsulation) در ++C
همه برنامههای ++C متشکل از عناصر بنیادین زیر هستند. دستورات برنامه (کد): بخشی از برنامه است که عملیات را انجام میدهد و تابع نامیده میشود. داده برنامه: داده اطلاعات برنامه است که توابع برنامهی آن را تغییر میدهند. محصورسازی مفهومی از برنامهنویسی شیگرا است که داده و توابع تغییردهنده دادهها …
ادامه نوشته »اورلود عملگر تخصیص در ++C
میتوان عملگر تخصیص (=) را همانند دیگر عملگرها اورلود کرد و همانند سازنده کپی (copy constructor) میتوان از آن برای ایجاد یک شی جدید استفاده کرد. مثال زیر نحوه اورلود کردن عملگر تخصیص را نشان میدهد. #include <iostream> using namespace std; class Distance { private: int feet; // 0 to …
ادامه نوشته »توابع عضو کلاس در ++C
یک تابع عضو کلاس، تابعی است که تعریف یا نمونه اولیهاش درون تعریف کلاس قرار دارد. این تابع در اشیا عضو آن کلاس به کار رفته و به همه اعضای آن شی دسترسی دارد. اجازه دهید از کلاسی که پیش از این تعریف کردیم اینجا نیز بهره بگیریم و به …
ادامه نوشته »مدیریت استثناها در ++C یا Exception Handling
در این جلسه به بررسی مدیریت استثناها در ++C یا Exception Handling میپردازیم. یک استثنا حالتی غیرطبیعی است که ممکن است در حین اجرای یک برنامه رخ دهد. یک استثنا در ++C پاسخی است که برای یک وضعیت ویژه پیش آمده حین اجرای برنامه ، مانند تقسیم بر صفر، تدارک …
ادامه نوشته »فایلها و استریمها در ++C
تا اینجا از کتابخانهی استاندارد iostream استفاده میکردیم، که متدهای cin و cout را به ترتیب برای خواندن از ورودی استاندارد و نوشتن در خروجی استاندارد به کار میبرد. این آموزش به شما نحوه خواندن و نوشتن در فایلها را نشان خواهد داد. برای اینکار به یک کتابخانه استاندارد از …
ادامه نوشته »اینترفیسها در ++C (کلاسهای انتزاعی)
یک اینترفیس (interface) رفتار یا قابلیتهای یک کلاس ++C را بدون درنظرگرفتن هیچ نوع پیادهسازی برای آن توصیف میکند. اینترفیسهای ++C با استفاده از کلاسهای انتزاعی (abstract class) پیاده میشوند. این کلاسهای انتزاعی را نباید با مفهوم چکیدهسازی که برای جداسازی جزئیات پیادهسازی از دادهها به کار رفت اشتباه بگیریم. …
ادامه نوشته »انتزاع داده (Data Abstraction) در ++C
منظور از چکیدهسازی داده فراهم کردن حداقل اطلاعات برای دنیای خارج و مخفیسازی جزئیات پس زمینه است، یعنی اطلاعات مورد نیاز بدون ارائه جزئیات نمایش داده میشود. چکیدهسازی داده یک تکنیک برنامهنویسی و طراحی است که مبتنی بر جداسازی رابط میانجی (interface) از پیادهسازی (implementation) میباشد. اجازه دهید با یک …
ادامه نوشته »چندریختی یا Polymorphism در ++C
یک موضوع مهم در برنامه نویسی Polymorphism است و در این جلسه ما به بررسی چندریختی یا Polymorphism در ++C خواهیم پرداخت. واژه چندریختی به معنی داشتن چندین صورت است. معمولاً، چندریختی در شرایطی اتفاق میافتد که زنجیرهای از کلاسها از طریق وراثت به هم مربوط شدهاند. چندریختی در ++C …
ادامه نوشته »