在類模板類外實現.h和.cpp分來寫的時候
#pragma once
template
<
class
t>
class
person
;
#include
"stdafx.h"
#include
"person.h"
template
<
class
t>
person
::person
(t age)
template
<
class
t>
void person
::show()
// 類外實現分開寫1.cpp: 定義控制台應用程式的入口點。
//#include
"stdafx.h"
#include
using
namespace std;
#include
"person.h"
intmain()
嚴重性 ** 說明 專案 檔案 行 禁止顯示狀態
錯誤 lnk2019 無法解析的外部符號 「public: __thiscall person::person(int)」 (??0?katex parse error: undefined control sequence: \users at position 49: …被引用 類外實現分開寫1 c:\̲u̲s̲e̲r̲s̲\lfzh\source\re…person@h@@qaexxz),該符號在函式 _main 中被引用 類外實現分開寫1 c:\users\lfzh\source\repos\排序\類外實現分開寫1\類外實現分開寫1.obj 1
這種情況和模板實現機制,c++編譯機制有關
解決辦法
將#include"person.h"
改為#include"person.cpp"
所以類模板一半不要分開寫 將.cpp改為.hpp
#include"person.hpp"
無法解析外部符號
先檢視專案屬性裡附加目錄庫包不包含該檔案 資料夾屬性是不是唯讀 最後可能除錯的配置系統位數不對 函式未宣告或未實現等。最近又碰到了新的無法解析外部符號的問題。我在乙個dll專案中引用了另乙個dll專案的某個類成員函式,但該類並沒有匯出,於是出現無法解析的外部符號問題,載入dll專案只能呼叫其匯出的類...
無法解析的外部符號
在使用vs2008除錯程式的過程中,經常會出現無法解析的外部符號問題,可能的原因有很多種,下面這些是我一年來積累的經驗.僅供參考.考慮可能的原因 0 出現無法解析可能是因為lib檔案不正確,比如64位的編譯配置,結果使用的是32位的lib包.1 只寫了類宣告,但還沒有寫實現類,造成呼叫時無法解析 2...
無法解析的外部符號
在使用vs2008除錯程式的過程中,經常會出現無法解析的外部符號問題,可能的原因有很多種,下面這些是我一年來積累的經驗.僅供參考.考慮可能的原因 0 出現無法解析可能是因為lib檔案不正確,比如64位的編譯配置,結果使用的是32位的lib包.1 只寫了類宣告,但還沒有寫實現類,造成呼叫時無法解析 2...