작성
·
231
0
class와 struct는 차이가 거의 없다고 하셨는데
find_if(v.begin(), v.end(), CanDivideBy11()); 와 같이 함수 객체를 인자로 넣는 부분에서 만약 struct가 아니고 class를 사용한다면 생성자를 넣는 문법이랑 똑같은거 아닌가요?
struct가 아닌 class를 사용한다면 생성자가 아닌 연산자 오버로딩을 통한 함수 객체를 부르는 것이라고 어떻게 구분해야 하나요?
답변 1
1
딱히 구분하는 개념이 아니고 클래스로 해도 동일하게 동작합니다. (public으로 할 경우)
template 코드가 operator()(int n)를 호출하는데 모양이 맞으면 되고 안 되면 안 되는 간단한 원리입니다.