[C++] 캡슐화 (EnCapsulation)
Language/C++C++ 객체지향에서 클래스는 캡슐화 하여야 한다.
캡슐화는 관련 있는 데이터와 함수를 하나의 단위로 묶는 것을 말한다.
다음은 캡슐화가 되어 있지 않은 경우이다.
1 2 3 4 5 6 7 8 9 10 11 12 | class Point { public: int x; int y; }; class DrawPoint { public: void draw(Point p) { cout << "draw " << p.x << ", " << p.y << endl; } }; |
위 예제는 Point에 대한 데이터와 함수가 두 개의 클래스로 나뉘어져 있다.
다음과 같이 관련있는 데이터와 함수를 묶어 캡슐화 해야 한다.
1 2 3 4 5 6 7 8 | class Point { public: int x; int y; void draw() { cout << "draw " << x << ", " << y << endl; } }; |
캡슐화에 대한 기본 개념은 어렵지 않다. 예제 또한 간단하여 쉽다고 생각할 수 있으나 실무에서는 어디까지를 관련있는 데이터나 함수로 볼 것인지에 대한 결정을 하기 매우 어렵기 때문에 많은 경험과 노하우를 필요로 한다.
'Language > C++' 카테고리의 다른 글
[C++] this 포인터 (0) | 2015.12.02 |
---|---|
[C++] 생성자(Constructor)와 소멸자(Destructor) (0) | 2015.11.30 |
[C++] 정보은닉 (Information Hiding) (0) | 2015.11.30 |
[C++] 동적할당. new와 delete (0) | 2015.11.30 |
[C++] Reference (0) | 2015.11.29 |