Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

คลาสที่ซ้อนกันใน C++


คลาสที่ซ้อนกันคือคลาสที่ประกาศในคลาสอื่น คลาสที่ซ้อนกันยังเป็นตัวแปรสมาชิกของคลาสที่ปิดล้อม และมีสิทธิ์การเข้าถึงเหมือนกับสมาชิกคนอื่นๆ อย่างไรก็ตาม ฟังก์ชันสมาชิกของคลาสที่ปิดล้อมไม่มีสิทธิ์พิเศษในการเข้าถึงสมาชิกของคลาสที่ซ้อนกัน

โปรแกรมที่แสดงคลาสที่ซ้อนกันใน C++ มีดังนี้

ตัวอย่าง

#include<iostream>
using namespace std;
class A {
   public:
   class B {
      private:
      int num;
      public:
      void getdata(int n) {
         num = n;
      }
      void putdata() {
         cout<<"The number is "<<num;
      }
   };
};
int main() {
   cout<<"Nested classes in C++"<< endl;
   A :: B obj;
   obj.getdata(9);
   obj.putdata();
   return 0;
}

ผลลัพธ์

Nested classes in C++
The number is 9

ในโปรแกรมข้างต้น คลาส B ถูกกำหนดไว้ภายในคลาส A ดังนั้นจึงเป็นคลาสที่ซ้อนกัน คลาส B มีตัวแปรส่วนตัว num และฟังก์ชันสาธารณะสองฟังก์ชัน getdata() และ putdata() ฟังก์ชัน getdata() รับข้อมูลและฟังก์ชัน putdata() จะแสดงข้อมูล ได้ดังนี้

class A {
   public:
   class B {
      private:
      int num;
      public:
      void getdata(int n) {
         num = n;
      }
      void putdata() {
         cout<<"The number is "<<num;
      }
   };
};

ในฟังก์ชัน main() มีการกำหนดอ็อบเจ็กต์ของคลาส A และคลาส B จากนั้นฟังก์ชัน getdata() และ putdata() จะถูกเรียกโดยใช้ตัวแปร obj ดังแสดงด้านล่าง

cout<<"Nested classes in C++"<< endl;
A :: B obj;
obj.getdata(9);
obj.putdata();