关于C++ 单例 编译器 报错问题的解决

Singleton.h
class Singleton{

public:
    static Singleton* getInstance(){
        if(instance == NULL){
            instance = new Singleton();
        }
        return instance;
    }

private:
    static Singleton * instance;
    Singleton(){};

};
Singleton* Singleton::instance = NULL;
main.cpp
int main(){
Singleton * instance = NULL;
instance = Singleton::getInstance();
    return 0;
}
原因在于仅声明了Singleton类的静态变量instance,但缺少变量定义,造成“无法解析的符号”错误。
时间: 2024-10-05 03:56:47

关于C++ 单例 编译器 报错问题的解决的相关文章

11g ASM单实例 dbca报错 prcr-1006 crs-0259 prcr-1071

11g ASM dbca报错 prcr-1006 crs-0259  prcr-1071 使用ASM方式创建单实例DB时,在运行DBCA时出现 PRCR-1006 : Failed to add resource ora.orcl.db for orcl PRCR-1071 : Failed to register or update resource ora.orcl.db PRCR-1001 : Resource ora.orcl.db does not exist 查看DBCA日志后,发现

编译器报错汇总

1.arm7 arm7s 真机32位处理器 arm64  真机64位处理器 2.i386 模拟器32位处理器   x86_64模拟器64位处理器 3.linker .o  可能有依赖库未导入 , 库重复导入: 4.libsqlite3 数据库 今天试了一下iPhone Sqlite3数据库实例操作,发现一个有意思的问题,就是在加Framework时,有些教程说加libsqlite3.dylib有些说加libsqlite3.0.dylib,那到底加哪个呢?经过百度和谷歌得答案如下: 实际上libs

编译器报错:'IHTMLControlElement' : redefinition

由于我安装了platform SDK,编译导致错误: error C2367: 'IHTMLControlElement' : redefinition; different uuid specifiers 解决办法: 将 C:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\Mshtml.h 的 interface DECLSPEC_UUID("04598fc6-866c-11cf-ab7c-00aa00c08fcf") 换成 i

vue.js常见的报错信息及其解决方法的记录

1.Vue packages version mismatch 翻译:vue包版本匹配错误 报错样例: 报错原因:通常出现于一些依赖库的更新或者安装新的依赖库之后(可以认为npm update已经成为一种习惯),导致了vue和vue-template-compiler的版本不一致. 解决方案:统一vue和vue-template-compiler的版本 1 "vue": "2.3.4", 2 "vue-template-compiler": &q

使用虚拟机克隆CentOS 6.9系统重启网卡报错问题的解决

使用虚拟机克隆CentOS6.9系统重启网卡报错问题的解决 1.错误信息 Bringing up interface eth0:  Device eth0 does not seem to be present,delaying initialization.                    [FAILED] 2.解决方法 (1)配置IP地址,重启网卡,出现如下报错 (2)这是因为克隆后的系统和原系统MAC地址和UUID一样,删除UUID和MAC地址 (3)删除网卡相关信息的文件 (4)重

【maven】 pom.xml内容没有错,但一直报错红叉 解决办法

[架构设计][maven] pom.xml内容没有错,但一直报错红叉 解决办法 [maven] pom.xml内容没有错,但一直报错红叉 解决办法 1.首先看一下下面的这两个项目,一个是新建的,一个是原来的老项目 2.myEcplise中是点击如下图 Maven4MyEcplise, Ecplise中也是右键,只不过点击Mavene而已,两个一样 3. 强制更新Maven 4.一会 红叉就消失了

赛码网线上PHP编译器报错

360笔试题,在赛码网提交后报错“Runtime Error:[ERROR] A Not allowed system call: runid:6660947 callid:25” 题目链接:http://exercise.acmcoder.com/online/online_judge_ques?ques_id=3980&konwledgeId=42 报错内容: 产生该错误的代码: 申明:不是因为代码逻辑原因产生错误,首先代码逻辑是按照官方给出的答案通过php实现:其次,同样的用例在本地运行(

MGR单主启动报错处理ERROR 3092

环境描述:三个节点的MGR集群,单主模式,准备关闭主节点进行数据库维护,出现了报错信息. 1.关闭数据库 mysql> shutdown; Query OK, 0 rows affected (0.00 sec) mysql> mysql> 2019-09-23T07:16:36.262422Z mysqld_safe mysqld from pid file /data/arkdb/3306/pid/mysql.pid ended 2.启动数据库 [[email protected]

Qt编译目录下exe文件执行报错问题的解决办法

使用Qt5.9.3+vs2017环境,编译项目生成Debug目录,运行其中的exe文件,出现以下错误(qt creator调试状态下或出安装包后是可以运行的): 经过查阅资料,发现是我重新配置Qt开发环境后忘记配置环境变量.当我们用Qt Creator直接运行时,不报错是因为Creator自己去找对应的dll,但直接运行debuge目录下的exe时,其只会在当前exe运行目录以及window环境变量目录中去找dll.当找不到时程序就会提示无法找到xxx.dll. 操作步骤如下: 1.双击编辑系统