C++/C++ 기본

C++ 구조체

검정비니 2018. 7. 7. 20:56
728x90
반응형

C++ 구조체



1. C++ 구조체 선언


C++에서는 C 언어와의 호환성을 위해 구조체(struct)를 지원한다. C++ 구조체는 표준 C 구조체에 기능을 확장하여 클래스와 동일한 구조와 기능을 가진다. C++ 구조체는 struct 키워드로 선언하며, 멤버 변수와 멤버 변수와 멤버 함수를 가지고, 접근 지정도 해야 한다.


struct structName {

//디폴트 접근 지정은 public이다. public 속성의 멤버 변수나 멤버 함수 선언

private:

//private 속성의 멤버 변수나 멤버 함수 선언

public:

//public 속성의 멤버 변수나 멤버 함수 선언

protected:

//protected 속성의 멤버 변수나 멤버 함수 선언

};




2. C++  구조체의 객체 생성


C++ 구조체의 객체 생성은 클래스 객체 선언 방식과 같이 구조체 타입 뒤에 객체 이름을 지정하면 된다. 다음은 structName 타입의 객체 stObj를 생성하는 예이며 C 언어와 달리 객체 생성 시 struct 키워드는 사용하지 않는다.


i.e.

structName stObj; //structName 타입의 구조체 객체 생성

struct structName stObj2; //C++에서는 컴파일 오류가 생긴다.




3. 구조체와 클래스의 차이점


C++ 구조체는 클래스와 기능적으로 동일하다. 멤버 변수뿐 아니라 생성자와 소멸자를 비롯한 멤버 함수를 가질 수 있으며, 다른 구조체나 클래스에게 상속 가능하고 다른 구조체나 클래스를 상속받을 수도 있다. 멤버들은 접근 지정자로 지정되며 멤버 활용 방법 또한 클래스와 완전히 동일하다.


클래스와 구조체의 차이점이라고 한다면, 클래스의 디폴트 접근 지정이 private인 반면, 구조체는 public이다. 이는 C 언어와의 호환성을 위해, 모든 멤버들이 공개적인 C 구조체를 C++에서 수용하기 위해서이다.

반응형

'C++ > C++ 기본' 카테고리의 다른 글

객체 포인터  (2) 2018.07.07
바람직한 C++ 프로그램 작성법  (2) 2018.07.07
인라인 함수  (0) 2018.07.07
접근 지정  (0) 2018.07.07
소멸자  (0) 2018.07.04