با استفاده از کلیدواژه static میتوان اعضای یک کلاس را به صورت ایستا (استاتیک) تعریف کرد. تعریف یک عضو کلاس به صورت استاتیک بدین معناست که بدون توجه به تعداد اشیا ساخته شده از کلاس، تنها یک کپی از عضو استاتیک وجود خواهد داشت. یک عضو استاتیک بین همه اشیا …
ادامه نوشته »اشارهگر به کلاس در ++C
اشارهگر به کلاس در ++C، دقیقاً مشابه اشارهگر ساختارها میباشد و دقیقاً به صورت مشابه، برای دسترسی به اعضای کلاس از طریق آن، از عملگر دسترسی عضو <- استفاده میشود. همانند همه اشارهگرها، باید اشارهگر را پیش از استفاده مقداردهی اولیه کرد. اجازه دهید با مثال زیر مفهوم اشارهگر به …
ادامه نوشته »محصورسازی داده (Data Encapsulation) در ++C
همه برنامههای ++C متشکل از عناصر بنیادین زیر هستند. دستورات برنامه (کد): بخشی از برنامه است که عملیات را انجام میدهد و تابع نامیده میشود. داده برنامه: داده اطلاعات برنامه است که توابع برنامهی آن را تغییر میدهند. محصورسازی مفهومی از برنامهنویسی شیگرا است که داده و توابع تغییردهنده دادهها …
ادامه نوشته »اورلود عملگر تخصیص در ++C
میتوان عملگر تخصیص (=) را همانند دیگر عملگرها اورلود کرد و همانند سازنده کپی (copy constructor) میتوان از آن برای ایجاد یک شی جدید استفاده کرد. مثال زیر نحوه اورلود کردن عملگر تخصیص را نشان میدهد. #include <iostream> using namespace std; class Distance { private: int feet; // 0 to …
ادامه نوشته »سازندهها و تخریبکنندههای کلاس در ++C
سازنده کلاس سازنده کلاس (Constructor) یک تابع عضو ویژه از کلاس میباشد که هنگام ایجاد یک شی جدید از آن کلاس اجرا میشود. سازنده دقیقا همنام کلاس میباشد و هیچ نوع دادهای (حتی void) را برنمیگرداند. سازندهها در مقداردهی اولیه به متغیرهای عضو بسیار مفید هستند. مثال زیر مفهوم سازنده …
ادامه نوشته »توابع عضو کلاس در ++C
یک تابع عضو کلاس، تابعی است که تعریف یا نمونه اولیهاش درون تعریف کلاس قرار دارد. این تابع در اشیا عضو آن کلاس به کار رفته و به همه اعضای آن شی دسترسی دارد. اجازه دهید از کلاسی که پیش از این تعریف کردیم اینجا نیز بهره بگیریم و به …
ادامه نوشته »تابع سازنده کپی در ++C
سازنده کپی (Copy Constructor)، سازندهای است که شی جدید را با استفاده از یک شی از همان کلاس که قبلاً ساخته شده است آغاز میکند. سازنده کپی برای: آغاز یک شی از شی دیگر از همان نوع کپی یک شی برای ارسال آن به عنوان آرگومانی از تابع کپی یک …
ادامه نوشته »مدیریت استثناها در ++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 …
ادامه نوشته »AVR یا PIC؟ کدام میکروکنترلر را برای پروژهها انتخاب کنیم؟
زمانی که نوبت به مرحلهی انتخاب میکروکنترلر میرسد، آنقدر میکروکنترلرها متنوعی که بعضا ویژگیهای مشابهی نیز ممکن است داشته باشند در بازار وجود دارد که واقعا گیجکننده است. از میان این همه، کدام را باید انتخاب کنیم؟! پارامترهای مهمی برای این انتخاب و تصمیم وجود دارند که باید درنظر گرفته …
ادامه نوشته »اورلود کردن عملگر فراخوانی تابع () در ++C
عملگر فراخوانی تابع () را میتوان برای اشیا آن کلاس اورلود کرد. با اورلود کردن عملگر ()، راه جدیدی برای فراخوانی تابع ایجاد نمیکنید، بلکه یک تابع عملگر ایجاد خواهید کرد که میتوان تعداد دلخواهی پارامتر به آن ارسال کرد. مثال زیر نحوه اورلود کردن عملگر فراخوانی () را نشان …
ادامه نوشته »اورلود کردن عملگر ایندکس در ++C
عملگر ایندکس معمولاً برای دسترسی به عناصر یک آرایه استفاده میشود. این عملگر را میتوان برای بهبود کارایی آرایههای ++C اورلود کرد. مثال زیر نحوه اورلود این عملگر را نشان میدهد. #include <iostream> using namespace std; const int SIZE = 10; class safearay { private: int arr[SIZE]; public: safearay() { …
ادامه نوشته »