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