我已經做了一些研究和谷歌搜索這個錯誤的天,據我所知這是一個常見問題,許多在c + +,我仍然沒有找到明確的答案這個錯誤。我讀過鏈接文件可以解決這個問題,但我可以找到任何示例代碼來做到這一點。我很接近完成這段代碼,我只需要從主文件中調用構造函數(或者只是創建一個簡單的對象),但我總是得到這個「對NamedStorm :: NamedStorm()的未識別引用」錯誤,請幫忙。身份不明的引用構造函數(C++)
Main.cpp的
#include <iostream>
#include <string>
#include "NamedStorm.h"
using namespace std;
NamedStorm storm[2];
int main(){
// NamedStorm Chris("Chris", 70.0, "T.S.", 990.0);
// storm[0] = Chris;
return 0;
}
NamedStorm.cpp
// CPP => Function definition
#include <string>
#include "NamedStorm.h"
using namespace std;
// Defining static variables
int NamedStorm::stormCount = 0;
// Constructor definition
NamedStorm::NamedStorm(std::string sName, double wSpeed, std::string sCat, double sPress){
stormName = sName;
windSpeed = wSpeed;
stormCategory = sCat;
stormPressure = sPress;
stormCount++;
}
NamedStorm::NamedStorm(std::string sName){
stormName = sName;
stormCount++;
}
NamedStorm::NamedStorm(){
stormName = sName;
stormCount++;
}
// Destructor definition
//NamedStorm::~NamedStorm(){}
// Get (Accessor) function definition
int NamedStorm::getStormCount(){
return stormCount;
}
double NamedStorm::getStormPressure(){
return stormPressure;
}
string NamedStorm::getStormCategory(){
return stormCategory;
}
string NamedStorm::getName(){
return stormName;
}
// Set (Mutator) function definition
void NamedStorm::displayOutput(){}
void NamedStorm::sortByNames(){}
void NamedStorm::getAverageStormPressure(){}
void NamedStorm::getAverageWindSpeed(){}
void NamedStorm::getWindSpeed(){}
NamedStorm.h
#ifndef NAMEDSTORM_H_INCLUDED
#define NAMEDSTORM_H_INCLUDED
// NEVER use using namespce in header, use std instead.
class NamedStorm{
private:
std::string stormName;
std::string stormCategory;
double maxWindSpeed;
double stormPressure;
static int stormCount;
public:
// Constructor
NamedStorm(std::string, double, std::string, double);
NamedStorm(std::string);
NamedStorm();
// Destructor
//~NamedStorm();
// Get functions
int getStormCount();
double getStormPressure();
double getWindSpeed();
std::string getStormCategory();
std::string getName();
// Set functions
static void displayOutput();
static void sortByNames();
static void sortByWindSpeed();
static void getAverageWindSpeed();
static void getAverageStormPressure();
};
#endif // NAMEDSTORM_H_INCLUDED
您還需要將'namedstorm.obj'傳遞給鏈接器。你使用哪個工具鏈? – greatwolf
這將是值得**閱讀**的錯誤信息。它是「未定義的」,而不是「未知的」。不明飛行物不明,而不是符號。 - 「但是我可以找到任何示例代碼來做到這一點」 - 你不需要代碼 - 你需要一個鏈接器和一個命令行來調用鏈接器。 – 2013-07-27 19:20:21
編譯和鏈接不是C++語言的一部分,它是特定於編譯器和/或IDE,簡而言之,您需要學習如何使用這些工具,閱讀一些關於如何在您使用的IDE中創建和構建項目的在線教程(「IDE」類似於Visual Studio,Eclipse,Dev C++等)我相信你甚至可以在YouTube上找到這個視頻教程。 –