C++ 2.캡슐화

-캡슐화 개요

 

#include <iostream>

#include <string>

using namespace std;

 

class Unit //class 대신 struct 써도 오류는 안난다. 접근 지정을 최소하 하자!!!!!!!!!!!

{

        //클래스의 디폴트 가시성은 private

        //구조체의 디폴트 가시성은 public

        int num;

        string name;

        int hp;

public://클래스 외부에서도 접근 가능할 있게 접근 지정사 설정

        Unit(int _num, string _name)

        {

               num = _num;

               name = _name;

               hp = 100;

        }

        void Train(int hour)//멤버 메서드

        {

               cout<<num<<" 유닛("<<name<<")훈련하다."<<endl;

               if(hp + hour > 200)

               {

                       hp = 200;

               }

               else

               {

                       hp += hour;

               }

        }

        void View()

        {

               cout<<num<<" 유닛 이름:"<<name<<", 체력:"<<hp<<endl;

        }

};

 

int main()

{

    Unit unit(3,"홍길동");

    unit.Train(5);

    unit.View();

    //unit.hp += 1000; //가시성을 차단하여 접근할 없음

    unit.View();

 

        int *pi = new int;

        *pi = 9;

        delete pi;

 

        int n;

        cin >> n;

 

        int *darr = new int[n]; //배열 스러운거지 배열 생성자 아니다.

        for(int i = 0; i < n; i++)

        {

               darr[i] = i+1;

        }

        delete[] darr; //배열스럽게 소멸해야 한다.

 

        Unit *unit2 = new Unit(3,"홍길동");

        unit2->View();

        delete unit2;

    return 0;

}

 

 

 

 

728x90

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

C++ 6.접근 지정자  (0) 2016.04.19
C++ 5.정적 클래스  (0) 2016.04.19
C++ 4.정적멤버 static  (0) 2016.04.19
C++ 3. 특별한 멤버 this  (0) 2016.04.19
C++ 1. 입출력 및 기본 문법과 관련된 예제  (0) 2016.04.19

이 글을 공유하기

댓글

Designed by JB FACTORY