یک اینترفیس (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() { …
ادامه نوشته »اورلود کردن عملگر دسترسی کلاس (->) در ++C
عملگر دسترسی کلاس (<‒) را میتوان با احتیاط بیشتر اورلود کرد. این عملگر تعریف میشود تا به کلاس، رفتاری شبیه یک اشارهگر اعطا کند. عملگر <‒ باید یک تابع عضو باشد. در صورت استفاده، نوع داده بازگشتی آن باید اشارهگری به یک شی از همان کلاسی باشد که عملگر به …
ادامه نوشته »اورلود کردن عملگرهای ورودی/خروجی در ++C
در ++C میتوان نوع دادههای داخلی را با استفاده از عملگر استخراج استریم << وارد کرد و یا با استفاده از درج استریم >> به خارج ارسال کرد. عملگرهای درج استریم و استخراج استریم را میتوان برای وارد و خارج کردن نوع دادههای تعریف شده کاربر، مانند اشیا، اورلود کرد. …
ادامه نوشته »اورلود کردن عملگرهای رابطهای در ++C
زبان ++C از عملگرهای رابطهای متعددی (<, >, =<, =>, ==,…) پشتیبانی میکند. این عملگرها برای مقایسه نوع دادههای داخلی در ++C به کار می روند. میتوان هرکدام از این عملگرها را اورلود کرد تا برای مقایسهی اشیا یک کلاس هم قابل استفاده باشند. مثال زیر نحوه اورلود کردن عملگر …
ادامه نوشته »اورلود کردن عملگرهای باینری در ++C
عملگرهای باینری دو آرگومان دریافت میکنند. مثالهای زیر از عملگرهای باینری استفاده می کنند. از عملگرهای باینری مانند عملگر جمع (+)، تفریق (-) و تقسیم (/) به وفور استفاده میشود. مثالهای زیر نحوه اورلود کردن عملگر جمع (+) را نشان میدهد. به طریق مشابه، میتوان عملگرهای تفریق (-) و تقسیم …
ادامه نوشته »اورلود کردن عملگرهای یگانی در ++C
عملگرهای یگانی روی یک عملوند کار میکنند. مثالهای زیر نمونهای از عملگرهای یگانی هستند. عملگر افزایش (++) و کاهش (- -) عملگر یگانی منفی (-) عملگر منطقی نفی (!) عملگرهای یگانی روی اشیا نیز کار میکنند و در حالت نرمال، عملگر در سمت چپ شی قرار میگیرد، مانند obj ،-obj …
ادامه نوشته »اشارهگر this در ++C
در این جلسه به بررسی اشارهگر this در ++C میپردازیم. هر شی در ++C از طریق یک اشارهگر مهم به نام this، به آدرس خودش دسترسی دارد. اشارهگر this یک پارامتر ضمنی برای همه توابع عضو شی میباشد. بنابراین، درون یک تابع عضو، از this برای اشاره به شی میتوان …
ادامه نوشته »آموزش کار با Atmel Studio
در این جلسه به آموزش کار با Atmel Studio خواهیم پرداخت. استفاده از میکروکنترلرهای AVR که از خانوادهی میکرو (MCUs)های Atmel هستند، بسیار ساده است. برای کار با تمام میکروهای این خانواده ابتدائاً به یک محیط توسعه یا IDE مانند همین نرمافزار Atmel Studio نیاز داریم. در حقیقت با استفاده …
ادامه نوشته »نام کاربری و رمزعبور پیش فرض رزبری پای (سیستم عامل رزبین)
در این جلسه از آموزش مقدماتی رزبری پای در مورد نام کاربری (username) و رمز عبور (password) پیشفرض رزبین در رزبریپای صحبت خواهیم کرد. اطلاع داشتن از نام کاربری و رمز عبور رزبین از اهمیت بالایی برخوردار است چرا که بدون دانستن آن نمیتوان با رزبریپای هیچ کاری انجام داد. …
ادامه نوشته »توابع درون خطی در ++C
تابع درون خطی (Inline) در ++C مفهومی قدرتمند است که معمولاً همراه با کلاسها به کار می رود. اگر یک تابع درون خطی باشد، کامپایلر در زمان کامپایل، یک کپی از کد تابع را در نقطهی فراخوانی آن قرار میدهد. هر گونه تغییر در یک تابع درون خطی نیازمند کامپایل …
ادامه نوشته »