我有一个带有标题和.cpp文件的类。我在标题中声明了我的函数,并在.cpp文件中定义它们,就像你一样。
部首:
#pragma once
// my #includes
class CDNAGenerator
{
private:
// stuff
public:
CDNAGenerator(int, int);
~CDNAGenerator();
void FilterMeasurementsForOutliers(std::vector<double>& measurement_values);
// plenty more things
};
CPP:
CDNAGenerator::CDNAGenerator( int genes, int chromosomes )
{
// constructor code
}
void CDNAGenerator::FilterMeasurementsForOutliers(std::vector<double>& measurement_values)
{
// function code
}
然后,从同一解决方案中的一个单独项目中,我引用.h文件(但不是.cpp - 这似乎会导致多个定义错误):
#include "..\CalibrationTool\DNAGenerator.h"
并调用这些函数:
CDNAGenerator* dnaGenerator = new CDNAGenerator(30, 0);
dnaGenerator->FilterMeasurementsForOutliers(values);
但我得到CDNAGenerator :: CDNAGenerator(int,int)和CDNAGenerator :: FilterMeasurementsForOutliers(类std :: vector&gt;&amp;)
的未解决的外部错误我认为我已经正确地连接了所有内容,所以有人可以建议为什么我会收到此链接器错误吗?
答案 0 :(得分:0)
将CPP文件添加到项目
答案 1 :(得分:0)
您使用的是什么编译器? Gcc(mingw)不支持#pragma once
使用代码保护来避免'多重定义'。
#ifndef MYCLASS_H
#define MYCLASS_H
class MyClass {
...
}
#endif