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++] 추상 클래스 (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 |
댓글 영역