C++ VS單例模式報 錯誤 LNK2001 無法解析的外部符號 private: static class SingletonPattern錯誤
一、前言
如圖所示,C++使用VS寫完單例模式後,報如下錯誤:
錯誤 LNK2001 無法解析的外部符號 “private: static class SingletonPattern * SingletonPattern::m_Instance” (?m_Instance@SingletonPattern@@0PAV1@A) Test
錯誤 LNK1120 1 個無法解析的外部命令
二、程式碼
2.1 SingletonPattern.h
#pragma once
#include <iostream>
using namespace std;
class SingletonPattern
{
private:
SingletonPattern();
public:
~SingletonPattern();
private:
static SingletonPattern* m_Instance;
public:
static SingletonPattern* GetInstance();
void display();
};
2.2 SingletonPattern.cpp
#include "SingletonPattern.h"
//SingletonPattern* SingletonPattern:: m_Instance = nullptr;
SingletonPattern::SingletonPattern()
{
cout << "建立單例模式物件!" << endl;
}
SingletonPattern::~SingletonPattern()
{
if (m_Instance != nullptr) {
delete m_Instance;
m_Instance = nullptr;
}
cout << "銷燬單例模式物件!" << endl;
}
SingletonPattern *SingletonPattern::GetInstance()
{
if (m_Instance == nullptr) {
m_Instance = new SingletonPattern();
}
cout << "返回單例模式控制程式碼!" << endl;
return m_Instance;
}
void SingletonPattern::display()
{
cout << "使用單例模式!" << endl;
}
三、測試
3.1測試程式碼
#include "SingletonPattern.h"
int main() {
SingletonPattern* m_Test = SingletonPattern::GetInstance();
m_Test->display();
cin.ignore();
return 0;
}
3.2測試結果
四、解決方案
在 SingletonPattern.cpp 檔案中,
加入SingletonPattern* SingletonPattern:: m_Instance = nullptr;
也就是將我註釋的那一行解開即可!!!
相關文章
- 關於VS報無法解析外部符號的錯誤符號
- error C4996: 'std::_Uninitialized_copy0':與錯誤 LNK2001 無法解析的外部符號 "private: static class std::allocatorError996Zed符號
- c++基礎知識(九)連線時出現錯誤 error LNK2001: 無法解析的外部符號(轉)C++Error符號
- 無法解析的外部符號符號
- shell報錯:未預期的符號***附近有語法錯誤符號
- VS2017無法解析得外部符號符號
- 錯誤 1 error LNK2019: 無法解析的外部符號 _WinMain@16,該符號在函式 ___tmainCRTStartup 中被引用Error符號AI函式
- QT 自定義外掛問題 error: LNK2001: 無法解析的外部符號QTError符號
- 解析C++連結錯誤:未定義引用和未解析符號的完整解決方案C++符號
- UNIX下@符號報SP2-0734錯誤符號
- 錯誤 1 error LNK2019: 無法解析的外部符號 "public: __thiscall Distance::Distance(int)" (??0Distance@@QAE@H@Z),該符...Error符號
- 單例模式(SingletonPattern)單例模式
- ORACLE 異常錯誤 錯誤號大全Oracle
- IPMI報jnlp錯誤,無法開啟java程式Java
- 解決UNIX下@符號報SP2-0734錯誤符號
- 查詢外部表出現無法開啟日誌檔案的錯誤
- error C2061: 語法錯誤: 識別符號“MonsterSprite”Error符號
- BOOST應用 無法解析的外部符號 "void __cdecl boost::throw_exception(class std::exception const &)"符號Exception
- 無法發貼,NULL錯誤,求助!Null
- ClamAV無法更新錯誤解決
- VS 編譯錯誤編譯
- navicat 建立事件報語法錯誤事件
- vsftpd 錯誤:530 and 500 錯誤解決方法FTP
- 【JavaWeb錯誤集錦】有關Cookie不支援逗號、空格等特殊符號並報出伺服器500錯誤的解決方案JavaWebCookie符號伺服器
- 記錄一次根據錯誤資訊無法定位錯誤的錯誤
- 無法初始化 sqlcmd 庫,錯誤編號為 -2147467259SQL
- php class中public,private,protected,static的區別,以及例項PHP
- RMAN備份報錯ORA-27040: skgfrcre: 建立錯誤,無法建立檔案
- 印表機錯誤無法列印怎麼處理 印表機錯誤不能列印的方法
- nbu client錯誤解析client
- ipvs編譯錯誤編譯
- VS錯誤程式碼列
- itm tep無法登陸問題(錯誤號:KFWITM392E)
- 【錯誤】 Unable to compile class for JSPCompileJS
- 執行無法解決的編譯錯誤編譯
- C++錯誤記錄C++
- dns錯誤怎麼辦 dns錯誤的解決辦法DNS
- Oracle錯誤號檢索Oracle