explicit
2022. 4. 18. 07:01ㆍC++
explicit
explicit을 사용하면 더 이상 묵시적 변환이 발생하지 않아 대입연산자를 이용한 객체의 생성 및 초기화가 불가능하다.
class SoSimple
{
private:
int num1;
int num2;
public:
SoSimple(int n1, int n2) : num1(n1),num2(n2)
{ }
explicit SoSimple(SoSimple ©): num1(copy.num1), num2(copy.num2)
{
}
void ShowSimepleDate()
{
cout<<num1<<endl;
cout<<num2<<endl;
}
};
int main(void)
{
SoSimple sim1(15,20);
SoSimple sim2 = sim1; //에러발생!
SoSimple sim3(sim1);
sim2.ShowSimepleDate();
return 0;
}
묵시적변환이 많이 발생하는 코드일수록 코드의 결과를 예측하기가 어려워진다.
explicit는 코드의 명확함을 더하기 위해 자주 사용되는 키워드 중 하나이다.
'C++' 카테고리의 다른 글
precision, fixed (0) | 2022.04.25 |
---|---|
깊은 복사 / 얕은 복사 (0) | 2022.04.18 |
copy constructor (0) | 2022.04.16 |
학번, 중간성적, 기말성적 입력 프로그램 (0) | 2022.04.14 |
mutable (0) | 2022.04.10 |