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;
也就是將我註釋的那一行解開即可!!!
相關文章
- error C4996: 'std::_Uninitialized_copy0':與錯誤 LNK2001 無法解析的外部符號 "private: static class std::allocatorError996Zed符號
- VS2017無法解析得外部符號符號
- QT 自定義外掛問題 error: LNK2001: 無法解析的外部符號QTError符號
- 錯誤 1 error LNK2019: 無法解析的外部符號 "public: __thiscall Distance::Distance(int)" (??0Distance@@QAE@H@Z),該符...Error符號
- 無法解析外部符號:AdjustTokenPrivileges和GetAstncKetState符號AST
- 解析C++連結錯誤:未定義引用和未解析符號的完整解決方案C++符號
- 單例模式(SingletonPattern)單例模式
- BOOST應用 無法解析的外部符號 "void __cdecl boost::throw_exception(class std::exception const &)"符號Exception
- IPMI報jnlp錯誤,無法開啟java程式Java
- 無法初始化 sqlcmd 庫,錯誤編號為 -2147467259SQL
- VS錯誤程式碼列
- 記錄一次根據錯誤資訊無法定位錯誤的錯誤
- navicat 建立事件報語法錯誤事件
- 【JavaWeb錯誤集錦】有關Cookie不支援逗號、空格等特殊符號並報出伺服器500錯誤的解決方案JavaWebCookie符號伺服器
- 印表機錯誤無法列印怎麼處理 印表機錯誤不能列印的方法
- php class中public,private,protected,static的區別,以及例項PHP
- C++錯誤記錄C++
- 錯誤: 找不到或無法載入主類
- 一種錯誤的 if 寫法
- C++中單例模式和static的對比C++單例模式
- Eclipse 啟動專案錯誤:class not foundEclipse
- 3種常見的Class級別的錯誤
- tasklist 遠端獲取程式報錯賬號密碼錯誤密碼
- 2024.6.17鮮花/錯誤的號碼
- 電腦dns配置錯誤無法上網怎麼辦 dns配置錯誤不能上網DNS
- WEBAPI單據查詢介面提示比較符67錯誤WebAPI
- C++ error C2143: 語法錯誤: 缺少“;”(在“*”的前面)C++Error
- 在scanf函式中佔位符使用錯誤而產生的一些錯誤函式
- [BUG反饋]1.1版本錯誤,新建模型,無法使用,出現SQLSTATE[23000]:錯誤模型SQL
- Steam錯誤程式碼138怎麼辦?無法訪問社群提示138錯誤解決方法
- 使用antd報less的錯誤
- 【常見錯誤】--Nltk使用錯誤
- iis7.5錯誤 配置錯誤
- 【BUG系列】transformClassesWithJarMergingForRelease BuildConfig.class 合併錯誤ORMJARUI
- Spring Boot配置錯誤:Failed to determine a suitable driver classSpring BootAIUI
- 網站域名解析為什麼錯誤?域名解析錯誤怎麼解決?網站
- c++連結錯誤原因整理C++
- dbfread報錯ValueError錯誤解決方法Error