프로그래밍[Univ]/기타

객체지향 프로그래밍과 C++ 개념정리

Cloud Travel 2009. 3. 12. 11:31
* 프로그램 방법론
 1. 절차적 방법론
  ① 객체 지향 개념과 상반되는 개념
  ② 어떤 문제를 해결하기 위한 과정을 순차적으로 설계하는 것
   ex) 파스칼, 포트란 ,C

 2. 객체지향 방법론
  ① 일을 하는 주체가 그 일을 다른 사람에게 떠 넘기는 것

* 객체 클래스와 상속
 1. 객체 클래스(object class)
  > 유사한 특징을 지닌 객체를 묶어서 그룹지은 것

 2. 클래스 인스턴스(class instance)
  > 클래스에 속하는 실례

 3. 메소드(Method)
  > 객체가 메세지(명령)를 해결하는 방법
   =>객체마다 각각의 method가 다르기 때문에 다양성을 가진다.

 4. 계층구조
  > 클래스간의 계층. 즉, 하위 계층이 상위 계층에 속해 있다.(>상속되어있다)
  > 하위 계층 클래스는 상위 계층에 상속되어, 상위 계층의 속성을 가진다.
                                                               (>상위 계층의 멤버함수와 멤버데이터를 이어받는것.)
  ※동적연결
   하위 계층에 없는 선언을 찾아서 상위 계층으로 올라가는 것
   if ) 하위계층에서 선언을 찾게되면, 상위 계층으로 올라가지 않는다.
  *하위 클래스에서 상위클래스와 동일한 함수 정의
  (= 상속 관계 임에도 똑같은 이름의 함수 정의)
  ① 하위 클래스의 함수가 상위 클래스의 함수를 덮어씌움.
  ②하위 클래스가 그 함수를 자체 특성에 맞게 특화 시킬때 사용.

*객체 지향 설계 과정
 ① 문제를 풀기 위한 객체 설정
 ② 객체간의 유사한 속성 파악(클래스 분별)
 ③ 유사한 속성을 지닌 객체를 모아서 기본 클래스로 선언
 ④ 기본 클래스로부터 특수한 속성을 지닌 하위 클래스를 정의

*멤버함수
 ① C++에서 메세지 역활을 하는 것.
 ② 이 함수를 보고 사용자가 무엇을 해야하는지 이해를 높이기 위해서는 자세한 주석이 필요하다.

* 생선자함수와 소멸자 함수
 1. 생성자 함수
  ① 클래스 명과 동일한 함수명을 사용하되 리턴 타입을 선언하지 않는 함수
  ② 객체를 만드는 함수(메모리 할당)

 2. 소멸자 함수
  ① 클래스명과 동일한 함수명을 사용하되, 클래스명 앞에 물결(~)표시를 하고, 리턴타입을 선언하지 않는 함수
  ② 객체를 버리는 함수(메모리 반환)
 >ex)  card라는 클래스에서...
         card() // 생성자 함수
         ~card() // 소멸자 함수

*Public 과 Private
 1. Public(공유)
  ① 내부에 선언된 메세지를 외부 사용자가 공유할 수 있다.
  ② 외부 사용자가 사용가능한 클래스 변수이다.
 
 2. Private(사적인)
  ① 외부 사용자가 공유할 수 없다.
  ② 자체 클래스 멤버의 함수 만이 이 변수를 사용가능하다.

 ※Proctected
  > 하위 클래스 객체만이 접근이 가능하다.

*c++ 소스파일 구성
 1. 인터 페이스 파일(.h)
  ① 클래스 선언
  ② 객체를 사용할 사용자와의 인터페이스를 위한 파일
   ex) #define
        #include(다른 인터페이스 포함)
        typedef
 
 2. 구현파일(.cpp .cc)
  ① 클래스 구현
   ex) #include(자체 헤더 파일을 포함)
        데이터

*연산자 오버로딩
 ① 정의된 연산자를 다른 용도로 사용하기 위해 연산자에 두 개 이상의 의미를 부여 하는 것
 ② 함수를 추가 해 줘야 한다.