캡슐화 (Encapsulation)
- 객체의 본질적인 특성 중 하나
- 객체를 캡슐로 싸서 내부를 보호하고 외부에서 접근을 제한
- 목적은 객체 내 데이터에 대한 보안과 보호, 외부 접근 제한
C++ 클래스와 객체
- 클래스 : 객체를 만들어내기 위한 설계도 또는 틀로, 멤버 변수와 멤버 함수의 선언으로 구성
- 객체 : 클래스의 모양을 그대로 가지고 생성되며, 멤버 변수와 멤버 함수로 구성
생성자 (Constructor)
- 객체가 생성될 때 자동으로 호출되는 멤버 함수
- 주요 목적은 객체 초기화, 메모리 할당, 파일 열기, 네트워크 연결 등
- 생성자 이름은 클래스 이름과 동일하며 리턴 타입이 없다.
- 여러 개의 생성자 중 하나만 실행되며, 선언되어 있지 않으면 기본 생성자가 자동으로 생성
소멸자 (Destructor)
- 객체가 소멸될 때 자동으로 호출되는 함수
- 주요 목적은 마무리 작업을 수행하는 것으로, 메모리 해제, 파일 저장 및 닫기, 네트워크 연결 해제 등이 있다.
- 소멸자 함수의 이름은 "~"를 클래스 이름 앞에 붙여서 지정
접근 지정자 (Access Specifiers)
- 객체의 캡슐화를 위해 사용
- 세 가지 접근 지정자가 있으며, `private`, `public`, `protected`가 있다.
- `private`는 동일한 클래스의 멤버 함수에서만 접근 가능하고, `public`은 모든 다른 클래스에서 접근 가능
인라인 함수 (Inline Function)
- `inline` 키워드로 선언된 함수로, 호출 시 함수 코드를 직접 확장하여 사용
- 실행 속도를 개선하는 데 사용되며, 자주 호출되는 짧은 코드의 함수에 적합
- 컴파일러에 의해 처리되며, 클래스 선언부에 구현된 멤버 함수는 자동으로 인라인 함수로 처리
C++ 구조체 (Struct)
- C++에서 구조체는 클래스와 매우 유사하지만, 디폴트 접근 지정이 `public`이다.
- C 언어와의 호환성을 유지하기 위해 구조체를 사용
바람직한 C++ 프로그램 작성법
- 클래스를 헤더 파일과 cpp 파일로 분리하여 작성
- 클래스 선언부는 헤더 파일에 저장하고, 클래스 구현은 cpp 파일에 저장
- 목적은 클래스의 재사용과 코드 구조의 유지 보수성을 높이는 것이다.