5
CL
인스턴스를 const int&
으로 모호하게 변환하는 이유는 무엇입니까?참조로 모호한 변환
struct CL
{
operator const int&()
{
}
operator int&()
{
}
};
void fnc(const int&)
{
}
int main()
{
CL cl;
fnc(cl);
}
두 가지 방법이 있습니다 :
1). cl.operator const int&()
은 사용자 정의 변환
2)로 연결됩니다. cl.operator int&()
은 사용자 정의 변환으로 이어지고 자격 변환 (int&
~ const int&
)
첫 번째 방법은 두 번째 방법보다 낫지 않습니까? 표준을 보았지만 아무 것도 발견하지 못했습니다.