C++11에 오면서 override라는 키워드가 생겼다. java를 해본 사람이라면 @override라는 어노테이션을 본 사람이 있을 것이다. 이 어노테이션은 컴파일러에게 오버라이된 함수라는 것을 알려줘서 부모 클래스으로 부터 상속 받을 함수가 없다면 컴파일시에 알려준다. C++에서도 override 키워드가 똑같은 역할을 한다. 오버라이드 키워드를 만족하는 조건은 다음과 같다. 기반 클래스 함수가 반드시 가상 함수이어야 한다. 기반 함수와 파생 함수의 이름이 반드시 동일해야 한다(단, 소멸자는 예외). 기반 함수와 파생 함수의 매개변수 형식들이 반드시 동일해야 한다. 기반 함수와 파생 함수의 const성이 반드시 동일해야 한다. 기반 함수와 파생 함수의 반환 형식과 예외 명세가 반드시 호환되어야 한다...
요약 상속 관계의 경우 -> 오버라이딩 파라미터만 다른 경우 -> 오버로딩 개요 오버로딩과 오버라이드는 프로그래밍을 하다보면 아마 평생동안 만나게 되는 단어일 것이다. 두 영단어가 비슷해서 의미를 설명하고 맞는 단어를 선택하려고 하면 헷갈리는 경우가 종종 마주하게 된다. 이번 포스팅을 통해 오버로딩과 오버라이딩를 이해하고 내가 쓰는 여러가지 암기법들을 전해주고자 한다. 의미 Overloading 프로그램을 작성하다보면 같은 이름의 함수를 작성 할 수 없다는 것을 알 수 있다. 그 이유는 호출한 함수가 어떤 함수인지 컴파일러가 구분 할 수 없기 때문이다. 그렇지만 같은 함수를 작성해야하는 경우가 존재 할 수 있다. 몇가지 방법들이 있는데 그 중 하나가 namespace를 이용하는 것이다. 2019/04/2..
- Total
- Today
- Yesterday
- CPP
- async
- Unreal
- const
- Perfect
- Join
- 람다
- 발아시기
- Modern
- std::move
- auto
- 포인터
- C++14
- 보편참조
- C++11
- C
- detach
- Forwarding
- 다이소
- Future
- C++
- Overloading
- MOVE
- Effective Modern C++
- forward
- std::forward
- Effective
- thread
- 보편 참조
- Override
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |