클래스에 접근 지정자의 종류는
public
protected
private
이 있다.
클래스의 항목 중에서 공개할 것에는 public
클래스의 항목 중에서 공개하지 않을 것에는 private
class Car{
private:
int number;
int fuel;
public:
void displayNumber();
void displayFuel();
};
private아래 두 변수항목은 공개되지 않는다.
public아래 두 함수항목은 공개된다.
:일반적으로 변수항목을 비공개로 하고, 함수 항목을 공개로 하는 것이 좋다.
그래서 변수항목은 반드시 공개된 함수항목을 통해서만 조작하도록 하게 하는 것이다.
변수 항목 number, fuel을 비공개 정보로 해두면 반드시 클래스 안에서 선언된 함수로만 조작할 수 있다.
예를 들어
- #include <iostream>
- using namespace std;
- class Car {
- private:
- int number;
- int fuel;
- public:
- void displayNumber(void);
- void displayFuel(void);
- void setNumber(int n); //private에 있는 변수를 조작
- void setFuel(int f); //private에 있는 변수를 조작
- };
- void Car::displayNumber(void){
- cout << "차량 번호 : " << number << endl;
- }
- void Car::displayFuel(void){
- cout << "남은 연료 : " << fuel << endl;
- }
- void Car::setNumber(int n){
- if(n>1&&n<9999)
- number = n;
- else
- cout << "차 번호는 1~9999 까지 입니다. " << endl;
- }
- void Car::setFuel(int f){
- if(f>0&&f<99)
- fuel = f;
- else
- cout << "연료량은 0~99 까지 입니다. " << endl;
- }
- int main() {
- // your code goes here
- Car myCar;
- myCar.setNumber(1024);
- myCar.setFuel(80);
- myCar.displayNumber();
- myCar.displayFuel();
- myCar.setNumber(10240);
- myCar.setFuel(800);
- return 0;
- }
결과
차량 번호 : 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 |