C++에서 explicit
키워드는 생성자(constructor) 또는 변환 연산자(conversion operator)에 적용되어 암시적(implicit) 변환을 방지하는 데 사용됩니다. explicit
키워드를 사용하면 특정 상황에서 자동으로 발생할 수 있는 잘못된 변환을 방지하여 코드의 안전성과 명확성을 높일 수 있습니다.
예시
암시적 변환
다음과 같은 클래스가 있다고 가정해 봅시다.
class MyClass {
public:
MyClass(int x) { /*...*/ }
};
위와 같은 클래스가 있을 때, 다음과 같은 코드가 가능해집니다.
MyClass obj = 10; // 암시적 변환
위 코드는 int
타입의 값을 MyClass
객체로 암시적으로 변환합니다.
explicit 사용
위와 같은 암시적 변환을 방지하려면 생성자에 explicit
키워드를 추가합니다.
class MyClass {
public:
explicit MyClass(int x) { /*...*/ }
};
이제 다음과 같은 코드는 컴파일 오류를 발생시킵니다.
MyClass obj = 10; // 컴파일 오류: 암시적 변환 방지됨
explicit
키워드를 사용하면 다음과 같이 명시적으로 객체를 생성해야 합니다.
MyClass obj(10); // 명시적 변환
요약
explicit
키워드는 생성자 또는 변환 연산자에 적용되어 암시적 변환을 방지합니다.- 이를 통해 코드의 안전성과 명확성을 높일 수 있습니다.
- 암시적 변환을 방지하고 싶을 때
explicit
키워드를 사용합니다.
이를 통해 실수로 인한 잘못된 타입 변환을 방지하고 코드의 의도를 더 명확하게 전달할 수 있습니다.
반응형