헤더 파일을 작성하여 cpp.file에서 사용하려고 시도한 후. 헤더 파일에서 함수를 다시 정의하려고하면 컴파일러에서 오류가 발생합니다. 이전과 비슷한 방식으로 헤더를 사용하면서이 문제가 발생하지 않았습니다. 어쩌면 내가 잘못된 방법으로 벡터를 초기화합니다. 여기헤더 파일의 기능 재정의 C++
#include <string>
#include <vector>
#include "lajitellut.h"
using namespace std;
namespace otecpp_lajitellut{
/*this is where the error appears*/
vector<string> lajitellut(int lkm, char*mjt[]){
vector<string> stringVector;
for(int i =0; i<lkm; i++){
stringVector.push_back(mjt[i]);
}
for(int i =0; i<lkm; i++){
for(int a = 0; a<lkm;a++){
if(stringVector[i] < stringVector[a]){
stringVector[i].swap(stringVector[a]);
}
}
}
return stringVector;
}
}
그리고 헤더 파일 "lajitellut.h" 헤더 파일 만 함수 선언 넣어
#ifndef kissa
#define kissa
#include <string>
#include <vector>
namespace otecpp_lajitellut{
std::vector <std::string> lajitellut(int lkm, char* mjt[]) {
std::vector<std::string> stringVector;
return stringVector;
}
}
#endif // kissa
헤더 파일에 함수 선언을 넣습니다. 소스 파일에 기능 (정의)을 넣으십시오. – Ron
그런 다음 다시 정의하지 마십시오. 정의 대신 헤더 파일에 선언을 넣고 싶었 을까? – VTT
또는 헤더에서 일부 '인라인'함수를 * 선언 (선언 할뿐만 아니라)합니다. –