기말범위 3장~8장
연산자 다중정의, 템플릿, 예외처리에서는 몇문제 안나온다
상속, 클래스와 객체, 함수를 중심으로 보자!
함수 시작시 원형 선언해줘. 쓰기 싫으면 함수원형를 위로 올려주기
값 호출과 참조호출
실매개변수, 형식매개변수 구분하기(이 용어로 시험에 나온다!)
참조(레퍼런스)관련 내용 잘 암기하기! 잘 나온다
디폴트 인수는 인수 중 끝에만 위치할 수 있음
함수 다중정의(overloading)
매우중요!
다중정의된 함수의 구분: 인수의 개수 및 자료형
!함수의 반환 자료형으로 함수룰 구분할 수 없음
기존 기출문제와 이번 시험의 차이점
→ C++14 문법이 포함됨
@ C++14 추가내용
초기화리스트 {}사용, r-value참조와 이동생성자, 템플릿 표현(class -> typename) 이정도
생성자부분은 거의 무조건 출제된다 봐도 됨
기존 기출문제에서 복사생성자 추가됨
생성자의 초기화 리스트
- 상수 등은 대입문에서 값으 변경시킬 수 없지만, 초기화 리스트에서는 값을 변경해줄 수 있다.
- 특성상 뭔지 모르겠으면 초기화 리스트가 답일 확률이 높다!
- c++14부터는 초기화 리스트를 '데이터멤버이름{초기값}'형태로도 지정해줄 수 있다.
소멸자는 다중정의를 할 수 없다.
복사생성자는 원본이 없어지면 안되서 const가 부터있음(&)
이동생성자는 원본이 사라지기 때문에 const가 부터있지 않음(&&)
상속받을 클래스 이름 앞에 있는 접근제한자는, 해당 클래스에서 사용할 수 있는 최대 접근제한자
→ B의 클래스를 protected로 상속받는 경우, 상속받는 public멤버와 protected멤버 모두 protected 멤버로 취급
(시험!)
부모 클래스의 포인터는 자식 클래스의 포인터를 가리킬 수 있지만,
자식 클래스의 포인터는 부모 클래스의 포인터를 가리킬 수 없다.
포인터가 가리키는 클래스의 함수를 실행하기 위해서는 가상함수를 사용해주자
순수 가상함수, 추상 클래스
(시험!)
생성자 및 소멸자의 실행 순서
생성자: 기초 → 파생
소멸자: 파생 → 기초
자식 클래스의 생성자의 초기화 리스트에서 부모 클래스의 생성자 실행하기