explicit // mutable

박호준·2021년 10월 6일
0

explicit

class myclass {
	myclass(int a);
}

void	ft_classes(myclass C){
 ...
}

int main()
{
	ft_classes(myclass(3)) >> ok
	ft_classes(3) >> ok ? 컴파일러가 알아서 myclass로 만들어서 제공
    
}

class myclass {
	explicit myclass(int a);
}

void	ft_classes(myclass C){
 ...
}

int main()
{
	ft_classes(myclass(3)) >> ok
	ft_classes(3) >> no! explicit키워드는 암시적 수행을 막음
    
}

mutable

class myclass {
private :
{
	a;
}

void	ft_classes(myclass C) const{
	a = 5; >> const 함수라서 변경 불가능
}
class myclass {
private : 
{
    mutable	a;
}

void	ft_classes(myclass C) const{
	a = 5; >> mutable때문에 const함수여도 변경 가능
}
profile
hopark

0개의 댓글