디필의 요모조모

명품 C++ Programming 3장 요약 본문

Programming Language/C++

명품 C++ Programming 3장 요약

Diphylleia12 2020. 10. 13. 21:03

<3장 클래스와 객체>

 

객체에 대한 이해

  • 실세계는 객체들의 집합이며 객체들이 상호 통신하는 시스템이다.
  • 캡슐화는 객체를 캡슐로 싸서 그 내부를 볼 수 없게 하고 외부의 접근으로부터 보호한다.
  • C++ 객체는 멤버 변수와 멤버 함수로 구성되며멤버 변수는 객체의 상태(state)멤버 함수는 객체의 행동(behavior)을 표현한다.
  • C++ 클래스는 객체를 정의하는 틀 혹은 설계도로서 사용자는 클래스로 새로운 데이터 타입을 선언한다. C++ 객체는 실행 중에 생성되어 존재하므로 실체(instance)라고도 부른다.

C++ 클래스 만들기

  • class 키워드를 이용하여 클래스를 선언한다. 클래스 선언 뒤에는 반드시 세미콜론(;)을 붙인다.
  • 클래스는 선언부와 구현부로 나누어 작성하는 것이 원칙이다클래스 구현부는 클래스 선언부에 선언된 함수들의 코드를 구현하는 부분이다.
  • 객체의 멤버 접근은 객체.멤버’ 형식을 사용한다.

생성자

  • 생성자는 클래스의 이름과 동일한 멤버 함수로서 객체가 생성될 때 한 번만 실행되는 특별한 멤버이다.
  • 생성자는 객체의 초기화에 사용되며리턴 타입이 없고 중복이 가능하다.
  • 기본 생성자는 디폴트 생성자라고도 불리며 매개 변수 없는 생성자이다아무 생성자도 선언되어 있지 않으면컴파일러가 기본 생성자를 자동으로 삽입한다기본 생성자는 단순 리턴한다.

소멸자

  • 소멸자는 객체가 소멸될 때 실행되는 멤버 함수로서 클래스의 이름앞에 ~를 붙인 이름으로 선언되어야 한다. 소멸자는 매개 변수를 가지지 않고 리턴 타입도 없으며, 중복이 불가능하다. 객체는 생성된 반대순으로 소멸된다.

접근 지정

  • 접근 지정이란 객체를 캡슐화함에 따라 외부에서 접근 가능한 멤버와 접근할 수 없는 멤버를 선언하는 지시이다.
  • 멤버의 접근 지정은 private(비공개), public(공개), protected(보호)의 세 가지가 있다.
  • private 멤버는 클래스 내부의 함수들만 접근할 수 있는 멤버이고, public 멤버는 클래스 내외의 모든 함수들이 접근할 수 있는 멤버이며, protected 멤버는 자식 클래스에서만 접근할 수 있는 멤버이다.
  • C++ 클래스의 디폴트 접근 지정은 private이므로 접근 지정이 생략되면 private으로 처리된다.

인라인 함수

  • 함수에 inline 키워드를 붙여 인라인으로 선언하면, 컴파일러는 인라인 함수의 코드를 함수를 호출하는 곳에 확장시킨다. 그러므로 함수 호출이 일어나지 않고, 함수 호출에 대한 오버헤드를 제거하여 실행 속도를 높인다.
  • 인라인은 클래스의 멤버 함수나 외부 함수 모두 가능하며클래스 내의 선언부에 작성된 함수는 컴파일러에 의해 자동으로 인라인 처리된다.

C++ 구조체

  • C++ C 언어와의 호환성을 위해 구조체(struct)를 지원한다.
  • C++ 구조체는 디폴트 접근 지정이 public이라는 점을 제외하고멤버 함수멤버 변수상속접근 지정 등 클래스의 기능과 동일하다.

 

바람직한 C++ 프로그램 작성법

  • 클래스마다 선언부는 헤더 파일로, 구현부는 cpp 파일로 나누어 작성하는 것이 바람직하다.
  • main() 등과 같은 외부 함수는 따로 cpp 파일에 나누어 작성하는 것이 바람직하다.
Comments