解析外部符號我敢打賭,這是一個經常被問到的問題。但每次都會在不同的背景下提出。這是我的問題:我在VS2012 Express中有一個項目。該項目包含少量頭文件。在這裏粘貼整個項目是沒有意義的,因此我只是給出一個簡短的結構。
在頭文件Header.h,我有其被定義爲一個父類辛如下:
class Sim
{
protected:
// some member data
public:
Sim(int x, int y, A a);
vector<int> return_parameters(A a); // problems happen at this function
// class A is defined in another header file and properly included here
// function return_parameters has no definition, thus is an abstract function
}
Sim::Sim(int x, int y, A a)
{// some operations}
然後,我有類Sim_son從辛
class Sim_son: public Sim
{
private:
// some member data
public:
Sim_son(int x, int y, A a, int z);
vector<int> return_parameters(A a);
};
Sim_son::Sim_son(int x, int y, A a, int z): Sim(x,y, a)
{
// some operations
}
vector<int> Sim_son::return_parameters(A a)
{
return a.someData;
}
在主(派生,公共),我這樣的代碼:
void main()
{
// some operations
Sim_son Obj_son(x, y, a, z);
Obj_son.return_parameters(a) //PROBLEM HAPPENS
}
編譯器提供了一個LNK2019錯誤WH ich說在函數Sim_son :: Sim_son(void)中引用了未解析的外部符號Sim :: return_parameters。
我在行「Obj_son.return_parameters(a)」上寫了一行,然後錯誤消失了。所以我想這是麻煩的根源。
任何人都可以幫我解決這個問題嗎?提前謝謝了。
問候 龍
歡迎來到堆棧溢出!您不需要在帖子中添加簽名 - 您的用戶卡會自動添加。閱讀[幫助](http://stackoverflow.com/help/behavior)瞭解更多詳情。 – Artemix