Search Results for 'C++/explicit'

1 POSTS

  1. 2012.08.13 explicit

explicit

Posted 2012. 8. 13. 22:09

묵시적 타입 변환

특별히 개발자가 명시해 주지 않아도 자동적으로 허용되는 변환

 예를들어 int형 데이터를 double로 변환 할 경우 int 데이터 타입이 표현 할 수 있는 수치의 범위보다 double 데이터 타입이 표현 할 수 있는

수치 범위가 더  크므로 묵시적 타입을 변환해도 상관없다.

 ex)

int a=100;

double b = n;

이런식이 묵시적 변환

 

명시적은

int a = 100;

bouble b = (double)a;

이게 명시적

 

 그럼 여기서..

sample a = sam1;

sample b =(sam1);

이렇게 묵시적 변환이 일어나서 복사 생성자가 호출된다.

 이걸 허용하지 않으려면 명시적으로 바꾸면 된다.

그걸 바꾸는 것이 explicit이다.

 

왜 쓰냐면.

자료형이든 문장이든 자동으로 변환되는 것이 늘 좋은 것만은 아니다. 묵시적 변환이 많이 발생하는 코드일수록  코드의 결과를 예측하기 어려워진다.

따라서 explicit는  코드의 명확함음 더하기 위해 자주 사용되는 키워드중 하나이다.