5. 소멸자
- 소멸자는 객체가 소멸되는 시점에서 자동으로 호출되는 클래스의 멤버함수이다.
1) 특징
- 소멸자의 목적은 객체가 사라질 때 필요한 마무리 작업을 위함이다.
- 소멸자의 이름은 클래스 앞에 ~를 붙인다.
- 소멸자는 리턴타입이 없으며 어떤 값도 리턴해서도 안 된다.
- 소멸자는 오직 한 개만 존재하며 변수를 가지지 않는다.
- 소멸자가 선언되어 있찌 않으면 기본 소멸자가 자동으로 생성된다.
2) 생성자/소멸자 실행 순서
- 소멸자를 실행하면, 생성된 반대순으로 객체가 소멸된다.
ⓐ 지역객체 : 함수 내에서 선언도니 객체
ⓑ 전역 객체: 함수 바깥에서 선언된 객체
6. 접근 지정자
- 외부에서 접근가능한 공개 멤버와 외부에서 접근을 허용하지 않는 비공개 멤버를 구분하기위한 용도
1) 종류
ⓐ private(비공개) : 클래스 내 멤버 함수들에게만 접근이 허용된다
ⓑ public(공개) : 클래스 내외를 막론하고 프로그램의 모든 함수들에게 접근이 허용된다.
ⓒ protected(보호) : 클래스내의 멤버함수와 이 클래스를 상속받은 파생 클래스의 멤버 함수에게만 접근이 허용된다.
* 디폴트는 private이다.
2) 멤버 보호와 생성자
- 멤버 변수는 private으로 지정하는 것이 바람직하다.
- 생성자는 public으로 선언해야한다. (안하면 컴파일 에러)
7. 인라인 함수
1) 사용 이유 : 함수 호출 오버헤드 시간을 줄이기 위해서(실행 속도 개선)
2) 인라인 함수 : 짧은 코드로 구성된 함수에 대해 함수 호출 오버헤드로 인한 실행 저하를 막기 위해 도입된 기능
3) 장단점
- 프로그램의 실행속도가 향상되지만, 전체 크기가 늘어나는 단점이 있다.
* 제약사항: 컴파일러에 따라 함수의 크기나 효율을 따져서 인라인 함수를 허용하지 않는다.
4) 멤버 함수의 인라인 선언과 자동 인라인
- 생성자를 포함하여 클래스의 모든 멤버 함수가 인라인으로 선언 가능하다.
- 멤버 함수의 크기가 작은경우 클래스의 선언 부에 직접 구현해도 됨 > 자동 인라인 함수 처리
8. 구조체
1) 구조체 선언
struct structName {
// 여러 접근 지정자의 멤버 변수와 함수 선언 가능
}
2) 구조체의 객체 생성
structName stObj; // structName 타입의 구조체 객체 생성
* c언어와 달리 앞에 struct 키워드는 사용하지 않는다.(컴파일 에러남)
3) 구조체와 클래스의 차이점
- 기능적으로는 종일
- 클래스의 디폴트 접근지정자는 private인 반면, 구조체는 public이다.(이유: c구조체를 c++에서 수용하기위해)
9. 바람직한 c++ 프로그램 작성법
1) 클래스 마다 선언부는 헤더파일로, 구현부는 cpp파일로 나누어 작성하는 것이 바람직
2) 외부함수는 따로 cpp파일에 나누어 작성하는 것이 바람직
'Major > C&C++' 카테고리의 다른 글
[C++] 명품 C++ Programming 4장 개념정리 (0) | 2021.08.11 |
---|---|
[C++] 명품 C++ Programming 3장 연습문제 (0) | 2021.08.07 |
[C++] 명품 C++ Programming 3장 개념정리 (1) (0) | 2021.07.24 |
[C++] 명품 C++ Programming 2장 연습문제 (0) | 2021.07.12 |
[C++] 명품 C++ Programming 2장 개념정리 (0) | 2021.07.10 |