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함수여도 변경 가능
}