일반적으로 다음과 같이 C ++ 구조체에 대한 변수를 정의 할 수 있습니다.
struct foo {
int bar;
};
구조체에 대한 함수도 정의 할 수 있습니까? 이러한 기능을 어떻게 사용합니까?
답변:
예, a struct
는 class
기본 액세스 수준 (멤버 별 및 상속 별)을 제외하고 는 a 와 동일합니다 . (그리고 class
템플릿과 함께 사용할 때 추가 의미 가 있습니다)
클래스에서 지원하는 모든 기능은 결과적으로 구조체에서 지원됩니다. 클래스에 사용하는 것과 동일한 방법을 사용합니다.
struct foo {
int bar;
foo() : bar(3) {} //look, a constructor
int getBar()
{
return bar;
}
};
foo f;
int y = f.getBar(); // y is 3
구조체는 클래스와 같은 기능을 가질 수 있습니다. 유일한 차이점은 기본적으로 공개된다는 것입니다.
struct A {
void f() {}
};
또한 구조체에는 생성자와 소멸자가있을 수도 있습니다.
struct A {
A() : x(5) {}
~A() {}
private: int x;
};