Explicit는 생성자 앞에 사용하게 되는데. 생성자 앞에 이 키워드를 사용하게 되면 암시적 형변환을 막아준다.예를들어 다음의 코드가 있다고 한다면. class Temp{public:explicit Temp(int number) {};}; void main(){Temp temp(10);} 이런 코드는 정상적으로 동작한다. 하지만. void main(){Temp temp = 1;} 이런건 안된다는 뜻이된다. 만약 explicit 키워드가 생성자 앞에 선언되어 있지 않다면 컴파일러가 암시적으로 형변환하여 성공을 했겠지만, explicit 키워드를 사용함으로 인해서 차단된다.