g ++编译器"重新定义...以前定义过"

Jua*_*njo -2 c++ gcc makefile g++ c++11

我知道有类似的问题,但在我的案例中没有一个工作.嗨,我找不到为什么我有这个问题.这是我的个人文件:

#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
Run Code Online (Sandbox Code Playgroud)

这是我的个人.cpp文件:

#include "individual.h"


Individual :: Individual(unsigned int ngenes){
    cout << "something" << endl;
}
Run Code Online (Sandbox Code Playgroud)

错误看起来像这样

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){};
Run Code Online (Sandbox Code Playgroud)

我尝试了stackoverflow中的所有内容,但我仍然不知道如何解决这个问题.还
"曾经的#pragma"不工作.

Jac*_*ack 5

    Individual(unsigned int ngenes){};
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,您{ }在函数声明之后,这是一个空体的定义.

然后,您尝试重新定义.cpp文件中函数的主体.删除{ }.