함수 내에서 선언된 클래스는 해당 함수에 대해 로컬이기 때문에 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();