프로그래밍 언어/C++

C ++에서 구조체와 클래스의 차이점

Rateye 2021. 6. 29. 10:00
728x90
반응형

 

질문 : C ++에서 구조체와 클래스의 차이점은 무엇입니까?

이 질문은 이미 C # /. Net 컨텍스트에서 요청되었습니다 .

이제 C ++에서 구조체와 클래스의 차이점을 배우고 싶습니다. OO 디자인에서 기술적 인 차이점과 둘 중 하나를 선택하는 이유에 대해 논의하십시오.

분명한 차이점부터 시작하겠습니다.

  • public: 또는 private: 지정하지 않으면 구조체의 멤버는 기본적으로 public입니다. 클래스의 멤버는 기본적으로 비공개입니다.

C ++ 사양의 모호한 모서리에서 다른 차이점을 찾을 수 있다고 확신합니다.

답변

클래스와 구조체의 까다로운 두 번째 차이점을 잊었습니다.

표준 (C ++ 98에서 C ++ 11까지의 §11.2.2) :

도출 된 클래스 구조체를 선언하고 개인이 클래스는 클래스를 선언 할 때 가정하면 기본 클래스에 대한 액세스 지정자의 부재에서, 공공 가정한다.

완전성을 위해 클래스와 구조체의 더 널리 알려진 차이점은 (11.2)에 정의되어 있습니다.

키워드 클래스에 정의 된 클래스의 회원은 기본적으로 비공개입니다. struct 또는 union 키워드로 정의 된 클래스의 멤버는 기본적으로 공용입니다.

추가 차이점 : 키워드 class 를 사용하여 템플릿 매개 변수를 선언 할 수 있지만 struct 키워드는 사용할 수 없습니다.

출처 : https://stackoverflow.com/questions/92859/what-are-the-differences-between-struct-and-class-in-c
728x90
반응형