cpp class 예제

위의 동일한 오버로드 속성은 클래스에도 적용됩니다. 클래스는 클래스 또는 구조체 키워드로 선언됩니다. 멤버 선언은 이 선언에 배치됩니다. 집계 클래스는 사용자 선언된 생성자, 개인 또는 보호된 비정적 데이터 멤버, 기본 클래스 및 가상 함수가 없는 클래스입니다. [2] 이러한 클래스는 중괄호로 둘러싸인 쉼표로 구분된 초기화자 절 목록으로 초기화할 수 있습니다. [3] 다음 코드는 C와 C++모두에서 동일한 의미 체계를 가미합니다. C++에서 클래스 키워드로 정의된 클래스에는 기본적으로 개인 멤버와 기본 클래스가 있습니다. 구조체는 구조체 키워드로 정의된 클래스입니다. [1] 해당 멤버와 기본 클래스는 기본적으로 공용입니다.

실제로 구조체는 일반적으로 함수가 없는 데이터에 대해 예약되어 있습니다. 그러나 사용자 정의 생성자가 클래스에 대해 정의된 경우 위의 두 선언 모두 정의된 코드가 실행되지만 기본값은 변수 b에 할당되지 않는 이 사용자 정의 생성자를 호출합니다. POD-struct(일반 이전 데이터 구조)는 형식비POD-구조체, 비POD-공용 구조체(또는 이러한 형식의 배열) 또는 참조의 비정적 데이터 멤버가 없고 사용자 정의 할당 연산자및 사용자 정의 소멸자가 없는 집계 클래스입니다. [1] POD 구조체는 C 구조체와 동등한 C++ 라고 할 수 있습니다. 대부분의 경우 POD 구조체는 C.[4] 에 선언된 해당 구조체와 동일한 메모리 레이아웃을 가지며, 이러한 이유로 POD-구조체는 때때로 구어체로 “C 스타일 구조체”라고 합니다. [5] C++ 클래스 및 구조체의 중요한 특징은 멤버 함수입니다. 각 데이터 형식에는 데이터 형식의 모든(공용 및 개인) 멤버에 액세스할 수 있는 자체 기본 제공 함수(메서드라고 함)가 있을 수 있습니다. 이러한 비정적 멤버 함수의 본문에서 이 키워드는 함수가 호출되는 개체를 참조하는 데 사용할 수 있습니다. 이는 일반적으로 개체의 주소를 함수에 암시적 첫 번째 인수로 전달하여 구현됩니다. [10] 위의 사람 유형을 다시 예로 들자: 특성및 메서드는 기본적으로 클래스에 속하는 변수와 함수입니다. 이러한 것을 “반원”이라고도 합니다. 클래스에 대한 포인터는 구조에 대한 포인터와 정확히 동일한 방식으로 수행됩니다.