کلاسها در ++C: بخش سوم چگونگی تعریف اشیاء و استفاده از توابع عضو
نوشته شده توسط مدیر سایت پنجشنبه 14 آبان 1388 ساعت 22:50
نحوه استفاده از مطالب سایت
قبل از اینکه، مطلب جدید را شروع کنیم، ظاهرا تذکر یک نکته لازم است: مقالاتی که در صفحهی اول سایت میبینید، غالبا مقدمهی مقالهی اصلی هستند نه متن کامل آن
. برای خواندن نسخه کامل مطلب، باید روی لینک ادامه مطلب در انتهای مقاله کلیک کنید! موفق باشید
. برای خواندن نسخه کامل مطلب، باید روی لینک ادامه مطلب در انتهای مقاله کلیک کنید! موفق باشید
نحوه استفاده از یک کلاس
کلاس در حقیقت یک نوع داده جدید است که شامل ترکیبی از داده های استاندارد و توابع لازم برای دسترسی و تغییر این داده هاست. از این رو همان طور که ما میتوانیم متغیرهایی از دادههای ساده مانند int و double ایجاد کنیم، باید بتوانیم متغیرهایی از نوع یک کلاس هم تولید کنیم. از آنجا که این متغیرها تفاوتهای اساسی با متغیرهای ساده دارند، به آنها شیء میگوییم. برای تولید یک نمونه یا شیء از یک کلاس به صورت زیر عمل میکنیم: (کلاس CRect را در پست قبلی معرفی کردهایم)
CRect rc; //Declaring a regular object
CRect* pRC = new CRect; //Declaring a pointer object using new operator
به متغیرهای از نوع کلاس، شیء می گوییم.
خط اولی یک شیء ساده را معرفی میکند و خط دوم یک اشارهگر به شیء جدید تولید میکند. هر دو روش، یک شیء جدید تولید کرده و سازندهی پیشفرض را فراخوانی میکنند. اگر بخواهیم تابع سازندهی دومی فراخوانی شود (مقاله قبلی را ببینید) میتوانیم پارامترهای آن را در زمان نمونهسازی شیء جدید، در داخل پرانتز قرار دهیم:
CRect rc(0, 0, 30, 20); //Regular object
CRect* pRC = new CRect(0, 0, 30, 20); //Pointer object
با این کار تابع سازندهی دوم فراخوانی شده و چهار متغیر عضو کلاس به مقادیر تعیین شده، مقداردهی می-شوند.
دسترسی به متغیرها و توابع عضو
برای دسترسی به متغیرها و توابع عضو کلاس، از عملگر نقطه (.) استفاده میکنیم. اگر شیء تولید شده به صورت اشارهگری باشد، از عملگر اشاره (<-) استفاده میکنیم. مثلا برای فراخوانی تابع ShowCoord از کلاس CRect به صورت زیر عمل میکنیم:
rc.ShowCoord();
pRC->ShowCoord();
rc.left = 10;
pRC->left = 10;
سطوح دسترسی در یک کلاس
توابع و متغیرهای عضو یک کلاس، میتوانند سه سطح دسترسی داشته باشند: public، private و protected. سطح دسترسی public یا عمومی، آزادترین حالت است. متغیرها و توابع عضو کلاس که دارای سطح دسترسی عمومی هستند از بیرون کلاس نیز با استفاده از عملگر نقطه (.) یا اشاره (->) قابل دسترسی-اند.
متغیرها و توابع دارای سطح دسترسی private یا خصوصی، تنها از درون کلاس قابل دسترسیاند و هرگونه تلاشی برای دسترسی به آنها از بیرون کلاس منجر به خطای زمان کامپایل خواهد شد. غالبا توابع و متغیرهایی را که کلاس به صورت داخلی استفاده میکند و قرار نیست که از بیرون کلاس تغییر کنند، به صورت خصوصی تعریف میشوند.
سطح دسترسی protected یا حفاظت شده، همانند سطح دسترسی خصوصی است، تنها تفاوت آنها در مبحث وراثت است که در مقالات آتی به آن خواهیم پرداخت.

