Skip to content

Latest commit

 

History

History
74 lines (54 loc) · 2.44 KB

File metadata and controls

74 lines (54 loc) · 2.44 KB

20211127 - 오늘자 특강 요약

※ 어제 강의와 겹치는 내용이 많아 생략하였습니다.

inline함수와 inline이 무시되는 경우에 대해 공부하자
함수 뒤에 const를 붙일 수 있는지, const의 의미에 대해 이해하자
소멸자는 가상함수로 선언될 수 있다.
소멸자는 일반적으로 public으로 선언한다
가시성 지시어의 디폴트는 private
가상 기초 클래스로 상속을 하면 동일한 클래스가 다중상속에 의해 두 번 상속되더라도 기초 클래스 멤버가 한 번만 상속된다.

연산자 다중정의

기본적으로 왼쪽항은 자기자신(*this)
연산자 다중정의시 기본적으로 왼쪽 피연산자는 객체 자신이여야 한다.
단항연산자에 (int)가 있는 것은 단순히 후위 표기법을 나타내는 표기
bool 자료형: true false로 참 거짓을 나타냄
friend: A클래스 내에서 B클래스를 친구로 지정하면, B클래스는 A클래스의 private멤버에 직접 접근이 가능해짐(역은 성립x)
형변환 연산자는 반환자료형이 없다

operator int() const;
operator char*() const;

다중정의를 할 수 없는 연산자

  • 멤버 선택 연산자(.)
  • 멤버에 대한 포인터 연산자(.*)
  • 유효범위 결정 연산자(::)
  • 조건 연산자(? :)

템플릿

template
예전 기출문제에서는 typename을 class로 표현하기도 하였다.
함수 템플릿보다는 클래스 템플릿이 자주 시험에 나온다

STL

컨테이너 : 데이터 저장
반복자: 포인터의 역할
알고리즘: 데이터 처리 기능

순차 컨테이너(!)

vector
list
deque

연상 컨테이너(키를 이용)

set, map

이터레이터

begin: 시작 원소
end: 마지막 원소의 다음원소

for(it = a.begin(); it < a.end(); it++) *it = i++;

예외처리

예외가 발생할 수 있는 부분을 try문으로 처리, 예외가 발생했을때 처리를 catch문에서 처리
throw를 이용하여 예외를 발생시켜줌
catch불록은 throw명령으로 전달하는 예외 매개변수의 자료형에 따라 선택됨
catch(...)은 그 외 모든 예외를 처리함
exception 클래스와 가상함수 what()
예외로 인해 메모리가 소실되는걸 방지하기 위해 vector와 같은 컨테이너나 스마트포인터를 사용한다.