9. 연산자 오버로딩
오버로딩된 연산자는 원래의 연산자에 적용되는 문법을 위반 할 수 없
다.
연산자 기호를 새로 만들 수 없다.
10. 연산자 오버로딩
연산자 설명
sizeof sizeof 연산자
. 멤버 연산자
.* 멤버 지시 포인터 연산자
:: 사용 범위 결정 연산자
?: 조건 연산자
typeid RTTI 연산자
const_cast 데이터 형 변환 연산자
dynamic_cast 데이터 형 변환 연산자
reinterpert_cast 데이터 형 변환 연산자
static_cast 데이터 형 변환 연산자
아래의 연산자는 오버로딩 할 수 없다.
11. 연산자 오버로딩
연산자 설명
= 대입 연산자
() 함수 호출 연산자
[] 배열 인덱스 연산자
-> 클래스 멤버 접근 포인터 연산자
아래의 연산자는 멤버 함수로만 오버로딩 할 수 있다.
21. 동적 메모리와 클래스
동적 메모리란?
프로그램 실행중에 생성되는 메모리
new 키워드를 이용해 메모리 생성
delete 키워드를 이용해 메모리 해제
22. 동적 메모리와 클래스
특별 멤버 함수
생성자를 정의하지 않았을 경우 디폴트 생성자
파괴자를 정의하지 않았을 경우 디폴트 파괴자
복사 생성자를 정의하지 않았을 경우 디폴트 복사 생성자
대입 연산자를 정의하지 않았을 경우 디폴트 대입 연산자
주소 연산자를 정의하지 않았을 경우 디폴트 주소 연산자.
28. 생성자에 new를 사용시 주의할 사항
생성자에서 new를 이용하여 포인터 멤버를 초기화 했다면, 파괴자에서
반드시 delete를 사용해야 한다.
new와 delete의 사용은 서로 어울려야 한다. new는 delete와 짝을 이루
고 new[]는 delete[]와 짝을 이루어야 한다.
대입 연산자를 정의하지 않았을 경우 디폴트 대입 연산자
파괴자는 하나밖에 없으므로, 모든 생성자가 그 파괴자와 어울려야 한
다.