상세 컨텐츠

본문 제목

[C++] explicit

C++ 문법

by simstealer 2022. 5. 31. 12:11

본문

explicit 한정자

- 암시적 변환이 일어나지 않게 한다.

class A
{
public:
    explicit A(int data)
     : _data(data) { }
   
private:
    int _data;
};
 
void Foo(A a);
 
Foo(10); // int타입과 A타입이 다르기 때문에 암시적 변환이 일어나는데, 
         // explicit를 사용하면 타입이 다르기 때문에 컴파일 오류가 발생함
         // 그래서 명시적으로 A()타입으로 감싸주어야 한다.
Foo(A(10));

'C++ 문법' 카테고리의 다른 글

[C++] 추상 클래스  (0) 2022.06.03
[C++] 상속  (0) 2022.05.31
[C++] 오버로딩(OverLoadding)  (0) 2022.05.31
[C++] 클래스(Class)  (0) 2022.05.30
[C++] 레퍼런스(Reference)  (0) 2022.05.30

관련글 더보기

댓글 영역