
'클래스'에 해당되는 글 1건
- 2008.04.02
c에서는 구조체가 데이터만을 멤버로 가질 수 있지만 c++는 구조체에 함수를 가질 수 있습니다.
사실 class와 struct는 c++에서 거의 차이가 없습니다. 이름만 틀릴 뿐이며 동작하는 방식은 똑같습니다.
struct 역시 생성/소멸될 때 class처럼 생성자와 소멸자를 호출하게 됩니다.
유일한 차이점은 아무런 명시를 해주지 않았을 때 class는 멤버가 private 권한을 가지며 struct는 public을
가진다는 것 뿐입니다.
따라서 struct 키워드를 사용해서 정의를 해준다고 해도 생성자, 소멸자는 물론 다른 멤버 함수도 똑같이
선언할 수 있습니다.
즉, 아래의 두 정의는 완전히 똑같습니다.
struct stTest {
public:
stTest() : x(0) {}; /// contstructor
~stTest() {}; /// destructor
void stFunc() {};
private:
int x;
};
class CTest {
public:
CTest() : x(0) {};
~CTest() {};
void cFunc() {};
private:
int x;
};
하지만 아무런 권한 표시를 해주지 않을 경우 stTest의 멤버는 모두 public이 되며 CTest의 멤버는 모두 private으로
정의됩니다...
[출처] C++ 에서 class 와 struct |작성자 백귀야행