본문 바로가기
IT/C Language

[클래스] 접근 지정자

by Jang HyunWoong 2014. 12. 19.

클래스에 접근 지정자의 종류는

 

public

protected

private

 

이 있다. 

 

클래스의 항목 중에서 공개할 것에는 public

클래스의 항목 중에서 공개하지 않을 것에는 private

 

class Car{

private:

int number;

int fuel;

public:

void displayNumber();

void displayFuel();

};

 

private아래 두 변수항목은 공개되지 않는다. 

public아래 두 함수항목은 공개된다. 

 

:일반적으로 변수항목을 비공개로 하고, 함수 항목을 공개로 하는 것이 좋다. 

그래서 변수항목은 반드시 공개된 함수항목을 통해서만 조작하도록 하게 하는 것이다. 

 

변수 항목 number, fuel을 비공개 정보로 해두면 반드시 클래스 안에서 선언된 함수로만 조작할 수 있다.

 

예를 들어

  1. #include <iostream>
  2. using namespace std;
  3.  
  4. class Car {
  5. private:
  6. int number;
  7. int fuel;
  8. public:
  9. void displayNumber(void);
  10. void displayFuel(void);
  11. void setNumber(int n); //private에 있는 변수를 조작
  12. void setFuel(int f); //private에 있는 변수를 조작
  13. };
  14.  
  15. void Car::displayNumber(void){
  16. cout << "차량 번호 : " << number << endl;
  17. }
  18. void Car::displayFuel(void){
  19. cout << "남은 연료 : " << fuel << endl;
  20. }
  21. void Car::setNumber(int n){
  22. if(n>1&&n<9999)
  23. number = n;
  24. else
  25. cout << "차 번호는 1~9999 까지 입니다. " << endl;
  26. }
  27. void Car::setFuel(int f){
  28. if(f>0&&f<99)
  29. fuel = f;
  30. else
  31. cout << "연료량은 0~99 까지 입니다. " << endl;
  32. }
  33.  
  34. int main() {
  35. // your code goes here
  36. Car myCar;
  37.  
  38. myCar.setNumber(1024);
  39. myCar.setFuel(80);
  40.  
  41. myCar.displayNumber();
  42. myCar.displayFuel();
  43.  
  44. myCar.setNumber(10240);
  45. myCar.setFuel(800);
  46. return 0;
  47. }

결과

차량 번호 : 1024
남은 연료 : 80
차 번호는 1~9999 까지 입니다. 
연료량은 0~99 까지 입니다. 

 


반응형

'IT > C Language' 카테고리의 다른 글

uchar  (0) 2014.12.19
산술 연산 관련 팁  (0) 2014.12.19
클래스  (0) 2014.12.19
긴 이름을 짧게 만들어 주는 typedef  (0) 2014.12.19
struct 구조형 정리  (0) 2014.12.19