비슷한 질문이 있지만 내 경우에는 이러한 작업이 없음을 알고 있습니다. 안녕 내가 왜이 문제가 있는지 찾을 수 없습니다. 여기 내 individual.h 파일입니다g ++ 컴파일러의 "재정의 ... 이전에 정의 된"
#ifndef INDIVIDUAL_H
#define INDIVIDUAL_H
#include <vector>
#include <stdlib.h>
#include <time.h>
#include <iostream>
using namespace std;
class Individual{
private:
vector<unsigned int> chromosome;
unsigned int n_genes;
unsigned int N_colours_used = 0;
unsigned int fitness = 0;
public:
Individual(unsigned int ngenes){};
};
#endif
그리고 이것은 내 individual.cpp 파일입니다 : 오류이
src/individual.cpp:4:1: error: redefinition of ‘Individual::Individual(unsigned int)’
Individual :: Individual(unsigned int ngenes){
^
In file included from src/individual.cpp:1:0:
include/individual.h:24:13: note: ‘Individual::Individual(unsigned int)’ previously defined here
Individual(unsigned int ngenes){};
과 같은
#include "individual.h"
Individual :: Individual(unsigned int ngenes){
cout << "something" << endl;
}
내가 유래 모든 것을 먹으 렴 시도 그러나 나는 아직도이 문제를 해결하는 방법을 모른다. 또한
"#pragma once"가 작동하지 않습니다.
문제와 관련이 없지만 [C++ 식별자에서 밑줄을 사용하는 것에 대한 규칙은 무엇입니까?] (https://stackoverflow.com/questions/228783/what-are-the)를 읽는 것이 좋습니다. -rules-about-using-an-ac-identifier) 그런 다음 매크로'_INDIVIDUAL_H'에 대해 생각해보십시오. –