스터디/활동

1.클래스 정리

피씨컴 2013. 3. 14. 09:26

C++ 기초 플러스 4판

Stephen Prata 저

 

 

● OPP가 갖추고 있는 대표적인 기능

1. 추상화 (abstraction)

2. 캡슐화 (encapsulation)

3. 데이터 은닉 (data hiding)

4. 다형 (inheritance)

5. 상속 (inheritance)

6. 코드 재활용 (reusable code)

 

● 추상화

컴퓨터 분야에서 추상화란 정보를 사용자 인터페이스로 표현하는것이다. 즉 어떤 문제에 필수적인 조작적 기능들을 추상화하고 그것으로 해결책을 표현하는 것이다.

 

● 데이터형이란 무엇인가?

먼저 우리는 메모리에 저장되는 형태만으로 데이터형을 생각하기 쉽다. 예를 들어 char 1바이트 메모리를 나타내고 double을 8바이트 메모리를 나타낸다 그러나  좀더 깊이 생각해보면 데이터형이란 그

것을 대상으로 수행할 수 있는 연산에 의해 정의된다

 

- 기본형을 서술

1. 데이터 객체에 필요한 메모리의 크기를 결정한다.

2. 데이터 객체를 사용하여 수행할 수 있는 연산이나 메서드를 결정한다.

 

● 클래스

클래스(class)는 추상화를 사용자 정의 데이터형으로 변환해 주는 C++의 매개물이다.

클래스는 데이터 표현과 데이터를 조작하는 메서드들을 하나의 패키지 안에 결합 한다.

 

- 클래스 선언(class declaration) 

 데이터 맴버와 public 인터페이스, 맴버함수를 이용하여 데이터 표현을 서술한다.

 

- 클래스 메서드 정의 (class method definitions)

 클래스 맴버 함수가 어떻게 구현되는지를 서술한다.

 

※ 클래스 선언은 클래스의 개요를 제공하는것이고, 메서드 정의는 세부 사항을 제공하는 것

 

- C++의 키워드인 class

이 코드가 클래스 설계를 위한 정의라는 사실 나타낸다.

 

- 클래스 맴버 함수를 클래스 매서드(class method)라고 하기도 한다

- 맴버함수는 그자리에서 정의될 수도 있고, 클래스에 속해있는 다른 맴버 함수들 처럼 원형에 의해

   표현될 수도 있다.

- 원형에 의해 표현되는 맴버 함수들의 완전한 정의는 나중에 나온다.

- 함수 인터페이스를 서술하는 데에는 원형만으로도 충분하다.

- 데이터와 메서드를 하나로 결합하는 것이 클래스의 가장 두드러진 특징이다.

 

 

● 데이터 은닉 :  데이터를 클래스의 private부분에 넣는 것

private 같이 데이터에 직접 접근하지 못하게 차단하는 것을 데이터 은닉이라 한다.

- 장점

사업설명서와 같은 공시서류에서 데이터를 은닉하는것은 나쁘지만

- 장점

프로그래밍에서는 데이터의 무결성을 지켜주므로 좋은 것이다.

 

● 추상화 : public인터페이스는 설계의 추상화를 나타낸다.

 

● 캡슐화 : 세부적인 구현들을 따로 결합하여 추상화와 분리하는 것을 캡슐화라고 한다.

    데이터 은닉도 캡슐화의 한 예이다.

 

● public 또는 private?

- 일반적으로 데이터 항목들은 private부분에 선언된다.

- 클래스 인터페이스를 구성하는 맴버 함수들은 public부분에 선언 된다.

  그렇지 않으면, 프로그램에서 그 함수들을 호출할 수 없다.

- 클래스 선언에서 private 키워드는 없어도 된다. 그 이유는 클래스 객체에 대한 디폴트 접근 제

   어 로 지정되어 있기 때문이다.

 

 

●  클래스 맴버함수

- 맴버함수는 일반함수와 거의 같으며 함수 머리(function heading)와 함수몸체(function body)

   를 가지고 있으며 리턴형과 전달자도 가질 수 있다.

- 맴버 함수를 정의할 때, 그 맴버 함수가 어느 클래스에 속하는지 나타내기위해 사용 범위 결정

   연산자(::)를 사용해야 한다.

- 클래스 매서드는 그 클래스의 private 부분에만 접근할 수 있다.