کلاس تو در تو (Nested Class)
++C به برنامه نویسان اجازه میدهد تا یک کلاس را داخل کلاسی دیگر تعریف کنند. به این کلاسها، nested کلاس نیز گفته میشود. زمانی که کلاس B داخل کلاس A تعریف میشود، کلاس B نمیتواند به اعضای کلاس A دسترسی داشته باشد ولی کلاس A میتواند به اعضای کلاس B از طریق یک شیء از آن دسترسی داشته باشد. ویژگیهای یک کلاس تو در تو عبارتند از:
- یک کلاس تو در تو داخل یک کلاس دیگر تعریف میشود
- محدوده یا میدان دیدن کلاس داخلی در scope کلاس بیرونی است.
- برای تعریف یک شیء از کلاس داخلی، باید نام کلاس بیرونی به همراه عملگر (::) پشت آن قرار بگیرد.
برنامه زیر نحوه استفاده از کلاسهای تو در تو را نشان میدهد:
1: #include <iostream> 2: #include <string> 3: using namespace std; 4: 5: class Student 6: { 7: private: 8: int Age; 9: 10: public: 11: class Name 12: { 13: private: 14: string name; 15: 16: public: 17: string getName() 18: { 19: return name; 20: } 21: void setName(string n) 22: { 23: name = n; 24: } 25: }; 26: }; 27: 28: int main() 29: { 30: Student::Name n; 31: 32: n.setName("John"); 33: cout << "Name is : " << n.getName() << endl; 34: }
Name is : John