본문 바로가기

etc

[C++] Explicit 의미


 Explicit는 생성자 앞에 사용하게 되는데. 생성자 앞에 이 키워드를 사용하게 되면 암시적 형변환을 막아준다.

예를들어 다음의 코드가 있다고 한다면.


class Temp

{

public:

explicit Temp(int number) {};

};


void main()

{

Temp temp(10);

}


이런 코드는 정상적으로 동작한다. 하지만.


void main()

{

Temp temp = 1;

}


이런건 안된다는 뜻이된다. 

만약 explicit 키워드가 생성자 앞에 선언되어 있지 않다면 컴파일러가 암시적으로 형변환하여 

성공을 했겠지만, explicit 키워드를 사용함으로 인해서 차단된다.