답변:
예. 상속은 기본적으로 공개입니다.
구문 (예) :
struct A { };
struct B : A { };
struct C : B { };
Alex와 Evan이 이미 언급 한 것 외에도 C ++ 구조체는 C 구조체와 다르다고 덧붙이고 싶습니다.
C ++에서 구조체는 C ++ 클래스와 마찬가지로 메서드, 상속 등을 가질 수 있습니다.
C ++에서 구조의 상속은 다음 차이점을 제외하고 클래스와 동일합니다.
클래스 / 구조체에서 구조체를 파생시킬 때 기본 클래스 / 구조체의 기본 액세스 지정자는 public입니다. 클래스를 파생시킬 때 기본 액세스 지정자는 개인용입니다.
예를 들어, 프로그램 1은 컴파일 오류와 함께 실패하고 프로그램 2는 정상적으로 작동합니다.
// Program 1
#include <stdio.h>
class Base {
public:
int x;
};
class Derived : Base { }; // Is equivalent to class Derived : private Base {}
int main()
{
Derived d;
d.x = 20; // Compiler error because inheritance is private
getchar();
return 0;
}
// Program 2
#include <stdio.h>
struct Base {
public:
int x;
};
struct Derived : Base { }; // Is equivalent to struct Derived : public Base {}
int main()
{
Derived d;
d.x = 20; // Works fine because inheritance is public
getchar();
return 0;
}