Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++의 로컬 클래스

<시간/>

함수 내에서 선언된 클래스는 해당 함수에 대해 로컬이기 때문에 C++에서 로컬 클래스로 알려져 있습니다.

로컬 클래스의 예는 다음과 같습니다.

#include<iostream>
using namespace std;
void func() {
   class LocalClass {
   };
}
int main() {
   return 0;
}

위의 예에서 func()는 함수이고 클래스 LocalClass는 함수 내부에 정의되어 있습니다. 그래서 로컬 클래스라고 합니다.

로컬 클래스 이름은 해당 함수 내에서만 사용할 수 있으며 외부에서는 사용할 수 없습니다. 또한 지역 클래스의 메소드는 그 안에서만 정의되어야 합니다. 로컬 클래스는 정적 데이터 멤버를 가질 수 없지만 정적 함수는 가질 수 있습니다.

C++에서 로컬 클래스를 보여주는 프로그램은 다음과 같습니다.

예시

#include<iostream>
using namespace std;
void func() {
   class LocalClass {
      private:
      int num;
      public:
      void getdata( int n) {
         num = n;
      }
      void putdata() {
         cout<<"The number is "<<num;
      }
   };
   LocalClass obj;
   obj.getdata(7);
   obj.putdata();
}
int main() {
   cout<<"Demonstration of a local class"<<endl;
   func();
   return 0;
}

출력

Demonstration of a local class
The number is 7

위 프로그램에서 LocalClass 클래스는 func() 함수에 선언되어 있으므로 로컬 클래스입니다. 클래스 a 변수 num과 num을 초기화하고 표시하는 두 개의 멤버 함수. 클래스 생성 후, 그 객체 obj는 함수 func()에 정의되고 getdata() 및 putdata()는 obj를 사용하여 호출됩니다. 이것은 다음과 같이 보입니다.

void func() {
   class LocalClass {
      private:
      int num;
      public:
      void getdata( int n) {
         num = n;
      }
      void putdata() {
         cout<<"The number is "<<num;
      }
   };
   LocalClass obj;
   obj.getdata(7);
   obj.putdata();
}

main() 함수에서 func() 함수가 호출됩니다. 이것은 아래에 나와 있습니다.

cout<<"Demonstration of a local class"<<endl;
func();