Backend/C++

클래스?구조체?

petitCoding 2012. 4. 13. 09:48

 

C 언어에서 배우는 개념 중 하나가 바로 "구조체" 이다.

이 구조체는 원하는 데이터를 구조체 라는 한 자료구조에 묶어 표현하는 것이다.

예를 들어 다음과 같이..

 

struct data {

int id;

char *name;

char *detail;

};

그런데 구조체 처럼, C++에서도 데이터를 묶을 수 있는 개념이 존재한다.

바로 "클래스" 이다.

이 "클래스"는 "구조체"와 매우 흡사하게 생겼다. 하지만 구조체와는 약간 다른 느낌이다.

 

class data

{

public :

int id;

char *name;

char *detail;

};

C++ 에서 사용하는 클래스는 위처럼 구조체와 동일한 느낌으로 사용할 수 있고,

변수 뿐 아니라 다음과 같이 함수도 선언이 가능하다.

 

class data

{    

public :

int id;

char *name;

char *detail;

void print_data()

{

cout << id << "\n";

cout << name << "\n";

cout << detail << "\n";

}

}

 

또한, 클래스를 살펴보면 "public" 이라고 표시된 부분이 있는데, 클래스에서는 이 public/private 키워드를 이용해서 멤버 변수 및 함수의 은닉 여부를 결정 할 수 있다. 이것 또한 구조체와 다른 부분이라 할 수 있겠다.

 

 

 

 

 

반응형

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

객체 (Object)  (0) 2012.04.13
C++, 객체지향 언어!  (0) 2012.04.12