mvat1225   3년 전

sum 과 sum2 의 차이는 매개변수를 &a를 받는것과 a를 받는 차이 입니다 . 하지만 sum2 의 방식으로 

정답을 제출했을때는 컴파일 오류가 뜨더군요 이 둘의 차이점이 뭐죠? iter 로 접근하면 어차피 둘다 작동은 제대로 되던데

명확한 차이가 뭔지 잘 모르겠습니다.

dldyddlwl   3년 전

문제의 조건에 

C++, C++11, C++14, C++17, C++ (Clang), C++11 (Clang), C++14 (Clang), C++17 (Clang): long long sum(std::vector<int> &a);

라고 되어있습니다.

만약에, 다른 파라미터를 사용하게 되면, 위에서 말한 함수와 다른 함수가 되어버리죠.(오버로딩)

컴파일러 에러는

undefined reference to `sum(std::vector<int, std::allocator<int> >&)

라고 뜹니다.

지정된 함수를 찾지 못한 경우입니다. 아마 문제조건에 나온 함수가 미리 선언된 뒤(프로토타입으로), 그 함수를 찾을 수가 없어서 나타나는 에러 같습니다.

따라서, 문제 조건으로 나오는 함수 시그니쳐를 ( 파라미터와 리턴타입, 함수이름 ) 쓰는 게 옳습니다.

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