Explicit는 생성자 앞에 사용하게 되는데. 생성자 앞에 이 키워드를 사용하게 되면 암시적 형변환을 막아준다.
예를들어 다음의 코드가 있다고 한다면.
class Temp
{
public:
explicit Temp(int number) {};
};
void main()
{
Temp temp(10);
}
이런 코드는 정상적으로 동작한다. 하지만.
void main()
{
Temp temp = 1;
}
이런건 안된다는 뜻이된다.
만약 explicit 키워드가 생성자 앞에 선언되어 있지 않다면 컴파일러가 암시적으로 형변환하여
성공을 했겠지만, explicit 키워드를 사용함으로 인해서 차단된다.
'etc' 카테고리의 다른 글
[STL] 지역 변수를 STL Container에 삽입시 발생하는 일. (0) | 2015.08.03 |
---|---|
[C++] 메모리 가시성과 메모리 장벽 (2) | 2015.07.29 |
[C++] 문자열 분리(strtok, strtok_s) (0) | 2013.03.04 |
[Network] IRC구조 (0) | 2013.02.22 |
[C++] warning C4996 (0) | 2013.02.21 |