我知道有类似的问题,但在我的案例中没有一个可行。嗨,我找不到为什么我有这个问题。 这是我的个人文件:
#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
这是我的个人.cpp文件:
#include "individual.h"
Individual :: Individual(unsigned int ngenes){
cout << "something" << endl;
}
错误看起来像这样
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){};
我尝试了stackoverflow中的所有内容,但我仍然不知道如何解决这个问题。此外
“#pragma once”不起作用。
答案 0 :(得分:5)
Individual(unsigned int ngenes){};
正如您所看到的,在函数声明后面有{ }
,这是一个空体的定义。
然后,您尝试重新定义.cpp
文件中函数的主体。删除{ }
。