C++在写静态变量时容易犯的一个小错误
来源:互联网 发布:js判断鼠标是否移动 编辑:程序博客网 时间:2024/05/19 10:35
在A.h头文件里这样定义
#ifndef A_H#define A_Hclass A{private:A();~A();static int m_num;};int A::m_num;#endif
结果发现
Error3error LNK2005: "private: static int <span style="font-family: Arial, Helvetica, sans-serif;">A</span><span style="font-family: Arial, Helvetica, sans-serif;">::m_num" (?m_num@A@@0HA) already defined in A.obj</span>
Error4error LNK1169: one or more multiply defined symbols found
这时可能会很困惑,明明就定义一次,为什么就说多次定义呢?
结果就这么小的一个问题就得浪费你几分钟。
原来在A.cpp文件里导入了A.h头文件
#include "A.h"而其他文件如main.cpp文件里也导入了A.h头文件,导致了出现多次定义的问题,我就不解了,不是有头文件卫兵吗?但事实就是这样,所以一般有.h文件和.cpp文件的类的static变量的初始化都得放在.cpp文件里初始化,不然会出现多重定义问题,谨记!
0 0
- C++在写静态变量时容易犯的一个小错误
- 隐写分析中容易犯的小错误
- C语言容易犯的一些小错误
- 一个C/C++程序员最容易犯的错误!
- 容易犯的javascript小错误
- 初学C语言时在语法和语义上容易犯的一些错误
- 使用 libevent 容易犯的一个错误
- Coldfusion一个容易犯的错误。
- 一个java继承容易犯的错误
- 指针赋值容易犯的一个错误
- 初学C语言容易犯的错误
- 容易犯的c语言错误。
- 在使用Intent跳转时最容易犯的错误
- 容易犯的错误。
- 容易犯的错误
- 初学ibatis时容易犯的错误
- 写java程序最容易犯的21种错误
- 写java程序最容易犯的21种错误
- 使用sigwait同步处理异步信号
- stl hashmap与map hashmap与hashtable
- 用两个栈实现一个队列——我作为面试官的小结
- 理解UIScrollView
- Redis源码分析(四)-- sds字符串
- C++在写静态变量时容易犯的一个小错误
- 单链表基础
- Mysql应用总结
- CPU剧烈周期波动---services.exe的CPU占用 来回波动,占用大量CPU 的解决办法
- hdu 3555【数位DP】
- WCF服务寄宿WindowService + WPF 客户调用的解决方案
- xhtml表单
- hbase MapReduce程序样例入门
- win8安装mysql5.5最后配置没有反应