C ++ 구조체 용 함수 있습니다. struct foo {

일반적으로 다음과 같이 C ++ 구조체에 대한 변수를 정의 할 수 있습니다.

struct foo {
  int bar;
};

구조체에 대한 함수도 정의 할 수 있습니까? 이러한 기능을 어떻게 사용합니까?



답변

예, a structclass기본 액세스 수준 (멤버 별 및 상속 별)을 제외하고 는 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;
};