새소식

인기 검색어

CS/C++

explicit 키워드

  • -

explicit

explicit 키워드는 주로 생성자와 변환 연산자에 사용되며, 해당 생성자나 변환 연산자가 암시적 변환(implicit conversion)을 허용하지 않도록 지정한다.

 

예를 들어, explicit 키워드가 없는 생성자를 가진 클래스가 있을 때:

class Test {
public:
    Test(int x) {}
};

void func(Test t) {}

int main() {
    func(42);  // int에서 Test로 암시적 변환 가능
}

위의 코드는 func(42)에서 int 타입의 42가 Test 타입으로 암시적 변환되어 func 함수에 전달된다.

 

explicit 키워드가 생성자에 지정된 경우:

class Test {
public:
    explicit Test(int x) {}
};

void func(Test t) {}

int main() {
    func(42);  // 컴파일 오류! 암시적 변환 불가
}

이렇게 explicit 키워드는 암시적 변환을 방지하여 예기치 않은 변환을 막고 코드의 명확성을 높이는 데 도움을 준다.

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.