kyaryunha   6년 전

(( 알고리즘 문제 해결 전략 책을 보고 공부중입니다..! ))

((맨 아래에 소스코드 하나 첨부..!))


아래와 같은 코드에서,

explicit vec(double x_=0, double y_=0) : x(x_), y(y_){};

만약 이 줄을 빼먹는다면,


여기서 return 할때

vec operator -(vec &p){ 

   return vec(x-p.x,y-p.y);

}

에러가 납니다..


근데 explicit 뭔지 네이버에게 물어봐도 거의 안알랴줘요....


1. explicit.........을 쓰지 않고, 저 return 뒤의 값을 잘 적어서(?) 에러 안나게 하는 방법 있다면 알려주시면 감사합니다..!

2. 저거 꼭 explicit 안쓰고 코딩 하려면 엄청엄청 복잡해질 수밖에 없어서 explicit을 쓰는 거라면, 저 explict vec(.......) 이 줄이 무슨 의미인지? 해석해 주시면 감사합니다 ㅠㅜㅡ..... 




caffeinism7   6년 전

explicit은 명시적으로만 생성자를 호출 할 수 있도록 해주는 키워드입니다. 그 줄을 지우면 오류가 나는 이유는 vec(double, double) 생성자가 존재하기 않기 때문에 그렇게 됩니다. explicit만 지워도 컴파일은 정상적으로 될겁니다.

kyaryunha   6년 전

아아 그렇군요..! :) 알려주셔서 감사합니다! 

댓글을 작성하려면 로그인해야 합니다.