Override
: 함수를 Override 할 때 정확한 signature 에 맞춰 override 되는지 컴파일 타임에 확인되도록 하는 키워드
위 예제에서 발생하는 실수들이 문제가 되는 이유는
IDE에서 컴파일하는데 문제가 없기 때문이다.
실제로는 잘못된 코드임에도 불구하고 말이다...
그렇다면? 이런 실수를 방지하기 위해서
함수 이름 뒤에 override 키워드를 사용하면 컴파일 타임에 에러를 발생시킨다.
C의 기본 문법 중에 const 키워드를 살펴보자.
const 키워드의 위치에 따라 포인터가 가리키는 곳이 상수인지 포인터의 주소가 상수화되는지 차이가 난다.
더 나아가서 reference(&) 와 결합해서 const int*, int* const 의 reference(&)가 된다.
r2와 r3는 각각 const int*(상수를 가리키는 포인터)의 참조와 int* const(포인터의 주소가 상수)의 참조를 나타낸다.
피드 구독하기:
댓글 (Atom)
[C++] meta programing
재귀 호출에 관해 template meta programming 을 적용한 예제를 살펴보자. #include using namespace std; int fact(int n){ if(n factorial 연산을 하는 일반적인 재귀 호출 함...
-
Smart Pointer : 포인터처럼 동작하며 자동으로 메모리를 해제하고 안전하게 resource를 관리하도록 돕는 객체 포인터는 소멸자가 호출되지 않아 memory leak이 발생한다. Java, C#같은 VM이 있는 언어는 VM에서 G...
-
Template specialization : class template 을 arguments에 따라서 customizing 하는 기법 먼저 위 예제의 첫 번째 template 선언처럼 일반적인 template 선언은 primary temp...
-
우리는 함수의 포인터를 사용하여 함수를 또 다른 함수의 인자로 또는 반환 타입으로 사용할 수 있다. 포인터 변수 선언 방법은 어떻게 하는가? 타입 * 변수명; (통상 C++은 type에 *를 붙여쓰고, C개발자는 변수명에 붙여씀) 함수 포인...
댓글 없음:
댓글 쓰기