کلاس استاتیک
یک کلاس static کلاسی است که همه اعضای آن static باشند. یکی از روشهای معمول استفاده از کلاس static، ایجاد یک کتابخانه ریاضی که شامل تعدادی از توابع و مقادیر است، میباشد. کلاس Math یکی از این کلاسها است که در درسهای آینده در مورد آن توضیح میدهیم. موارد مهمی که در مورد این کلاسها باید بدانید عبارتند از :
- در تعریف کلاس static باید از کلمه static استفاده شود.
- همه اعضای این کلاسها باید static باشند.
- از کلاس static نمیتوان نمونه (Object) ایجاد کرد.
- کلاسهای استاتیک به ضورت ضمنی sealed هستند، در نتیجه نمیتوان از آنها ارث بری کرد.
- این کلاسها نمیتوانند سازنده یا constructor داشته باشند، ولی با این حال میتوان از static constructor ها برای مقدار دهی به عناصر static کلاس، استفاده کرد. توجه کنید که static constructor ها پارامتر و سطح دسترسی ندارند.
- برای دسترسی به اعضای static ای که در کلاس هستند، کافی است ابتدا نام کلاس را نوشته، سپس عملگر (::) و در آخر نام عضو استاتیک را بنویسید.
به مثال زیر توجه کنید :
1: #include<string> 2: #include<iostream> 3: using namespace std; 4: 5: static class Person 6: { 7: public: 8: static string ShowMessage(string message) 9: { 10: return message; 11: } 12: }; 13: 14: int main() 15: { 16: cout << Person::ShowMessage("Hello World!"); 17: }
Hello World!
در کد بالا یک کلاس استاتیک به نام Person در خطوط 12-5 تعریف شده است که دارای یک متد استاتیک با نام ()ShowMessage میباشد (خطوط 10-8). همانطور که در خط 16 مشاهده میکنید برای دسترسی به این متد استاتیک، بدون اینکه از کلاس شیء ایجاد کنیم، ابتدا نام کلاس سپس علامت :: و در آخر نام متد را مینویسیم.