عملگر ایندکس معمولاً برای دسترسی به عناصر یک آرایه استفاده میشود. این عملگر را میتوان برای بهبود کارایی آرایههای ++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 …
ادامه نوشته »توابع عضو کلاس در ++C
یک تابع عضو کلاس، تابعی است که تعریف یا نمونه اولیهاش درون تعریف کلاس قرار دارد. این تابع در اشیا عضو آن کلاس به کار رفته و به همه اعضای آن شی دسترسی دارد. اجازه دهید از کلاسی که پیش از این تعریف کردیم اینجا نیز بهره بگیریم و به …
ادامه نوشته »ویرایشگر سطح دسترسی کلاس در ++C
مخفیسازی داده یکی از مهمترین ویژگیهای برنامهنویسی شیگرا میباشد که توابع برنامه را از دسترسی مستقیم به عناصر داخلی یک کلاس منع میکند. این منع دسترسی بوسیله بخشهای برچسب دار درون بدنه کلاس انجام میگیرد. این برچسبها public، private و protected میباشند. کلیدواژههای public، private و protected مشخص کننده سطح …
ادامه نوشته »سازندهها و تخریبکنندههای کلاس در ++C
سازنده کلاس سازنده کلاس (Constructor) یک تابع عضو ویژه از کلاس میباشد که هنگام ایجاد یک شی جدید از آن کلاس اجرا میشود. سازنده دقیقا همنام کلاس میباشد و هیچ نوع دادهای (حتی void) را برنمیگرداند. سازندهها در مقداردهی اولیه به متغیرهای عضو بسیار مفید هستند. مثال زیر مفهوم سازنده …
ادامه نوشته »تابع سازنده کپی در ++C
سازنده کپی (Copy Constructor)، سازندهای است که شی جدید را با استفاده از یک شی از همان کلاس که قبلاً ساخته شده است آغاز میکند. سازنده کپی برای: آغاز یک شی از شی دیگر از همان نوع کپی یک شی برای ارسال آن به عنوان آرگومانی از تابع کپی یک …
ادامه نوشته »توابع دوست در ++C
یک تابع دوست (Friend Function) برای یک کلاس، در خارج از دامنه (scope) آن کلاس تعریف میشود، اما حق دسترسی به همه اعضای خصوصی و عمومی آن کلاس به آن اعطا میشود. اگرچه ممکن است که نمونه اولیه تابع دوست درون کلاس قرار داشته باشد، با اینحال این توابع دوست …
ادامه نوشته »چندریختی یا Polymorphism در ++C
یک موضوع مهم در برنامه نویسی Polymorphism است و در این جلسه ما به بررسی چندریختی یا Polymorphism در ++C خواهیم پرداخت. واژه چندریختی به معنی داشتن چندین صورت است. معمولاً، چندریختی در شرایطی اتفاق میافتد که زنجیرهای از کلاسها از طریق وراثت به هم مربوط شدهاند. چندریختی در ++C …
ادامه نوشته »محصورسازی داده (Data Encapsulation) در ++C
همه برنامههای ++C متشکل از عناصر بنیادین زیر هستند. دستورات برنامه (کد): بخشی از برنامه است که عملیات را انجام میدهد و تابع نامیده میشود. داده برنامه: داده اطلاعات برنامه است که توابع برنامهی آن را تغییر میدهند. محصورسازی مفهومی از برنامهنویسی شیگرا است که داده و توابع تغییردهنده دادهها …
ادامه نوشته »انتزاع داده (Data Abstraction) در ++C
منظور از چکیدهسازی داده فراهم کردن حداقل اطلاعات برای دنیای خارج و مخفیسازی جزئیات پس زمینه است، یعنی اطلاعات مورد نیاز بدون ارائه جزئیات نمایش داده میشود. چکیدهسازی داده یک تکنیک برنامهنویسی و طراحی است که مبتنی بر جداسازی رابط میانجی (interface) از پیادهسازی (implementation) میباشد. اجازه دهید با یک …
ادامه نوشته »اینترفیسها در ++C (کلاسهای انتزاعی)
یک اینترفیس (interface) رفتار یا قابلیتهای یک کلاس ++C را بدون درنظرگرفتن هیچ نوع پیادهسازی برای آن توصیف میکند. اینترفیسهای ++C با استفاده از کلاسهای انتزاعی (abstract class) پیاده میشوند. این کلاسهای انتزاعی را نباید با مفهوم چکیدهسازی که برای جداسازی جزئیات پیادهسازی از دادهها به کار رفت اشتباه بگیریم. …
ادامه نوشته »