IT/Programming / / 2023. 4. 18. 17:50

C++ <클래스와 객체>

반응형

클래스와 구조체의 유일한 차이점?

- 키워드 struct를 대신해서 class를 사용하면, 구조체가 아닌 클래스가 됩니다. 즉, 다음의 코드는 클래스의 정의입니다.

Class Car
{
     char gamerID[ID_LEN];
     int fuelGauge;
     int curSpeed;

     void ShowCarState() ...
     void Accel() ...
     void Break() ...
};
 

기존 구조체의 선언방법인

Car basicCar = { "Mallivu", 100, 10};은

클래스 내에서 선언된 함수가 아닌, 다른 영역에서 변수를 초기화 하려고 했기 때문에 가능하지 않게 됩니다.

클래스는 기본적으로 클래스내에 선언된 변수는 클래스 내에 선언된 함수에서만 접근 가능합니다.

따라서 다음과 같이 선언해야합니다.

Car basicCar;

 

접근지시자(접근제어 레이블)

C++에서는 총 세가지의 접근제어 지시자가 존재합니다.

 

- public : 어디서든지 접근 허용

- protected : 상속관계에 놓여 있을 때, 유도 클래스에서의 접근허용

- private : 클래스 내에서만 접근 허용

 

ps. 접근제어 지시자 뒤에는 :가 붙는데 이는 접근제어 지시자가 특정 위치정보를 알리는 '레이블'이기 때문입니다. 우리가 알고 있는, switch문에 사용되는 case도 레이블이기 때문에 :가 붙습니다.

 

용어정리 : 멤버변수, 멤버함수

 

멤버변수 : 클래스를 구성하는 (클래스 내) 변

- char gamerID[CAR_CONST::ID_LEN];

- int fuelGauge;

- int carSpeed;

멤버함수 : 클래스를 구성하는(클래스 내) 함수

- void InitMemver(char * ID, in fuel);

- void ShowCarState();

- void Accel();

- void Break();

반응형

'IT > Programming' 카테고리의 다른 글

JSP 페이지 프린트하기 (예제)  (0) 2023.04.19
JSP 의 기본 개념 및 사용 방법  (0) 2023.04.19
C++ <C++의 구조체>  (0) 2023.04.18
C++ <C++에서 C언어 표준함수 호출>  (0) 2023.04.18
C++ <new&delete>  (0) 2023.04.18
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유