C++:未定义引用静态类成员?
先来看代码:
#include <iostream>
#include <vector>
using namespace std;
class Foo {
public:static const int MEMBER = 1;
};int main()
{vector<int> v;v.push_back( Foo::MEMBER ); // undefined reference to `Foo::MEMBER'v.push_back( (int) Foo::MEMBER ); // OKreturn 0;
}
错误:对‘Foo::MEMBER’未定义的引用.
原因:
因为类的声明并不会进行内存空间的分配。
所以类的静态成员无法在类声明中定义。
因此,类的静态成员需要类内声明,类外定义。并且注意定义尽量不要出现在头文件中,以免造成重复定义。
#include <iostream>
#include <vector>
using namespace std;
class Foo {
public:static const int MEMBER = 1;
};const int Foo::MEMBER;int main()
{vector<int> v;v.push_back( Foo::MEMBER ); // undefined reference to `Foo::MEMBER'v.push_back( (int) Foo::MEMBER ); // OKreturn 0;
}
这样就正确了.
参考:
1.http://rongzhixueyuan.blog.sohu.com/282264026.html
C++:未定义引用静态类成员?相关推荐
- 对 mysql_init 未定义的引用_解析:以mysql_开始的未定义引用错误
当你链接到应用程序以使用MySQL客户端库时,可能会遇到以mysql_开始的未定义引用错误,如下所示: /tmp/ccFKsdPa.o: 在函数`main'中: /tmp/ccFKsdPa.o(.te ...
- 对YAML :: LoadFile的未定义引用
对YAML :: LoadFile的未定义引用 起语: 版权声明: 原文: http://www.sylar.top/blog/?p=103 YAML 介绍 YAML是一种结构化的文档结构,类似于js ...
- Linux下C语言 对pow、exp未定义引用问题
问题描述 头文件使用math库时会出现"未定义引用"问题 报错: /tmp/cct7CPFw.o:在函数'main'中: 19012705.c:(.text+0x88):对'pow ...
- mysql未定义_以mysql_开始的未定义引用错误
以mysql_开始的未定义引用错误 作者:佚名 来源:CNZZ 2008-12-26 当你链接到应用程序以使用MySQL客户端库时,可能会遇到以mysql_开始的未定义引用错误,如下所示: /tmp/ ...
- mysql未定义_以mysql_开始的未定义引用错误_MySQL
以mysql_开始的未定义引用错误_MySQL 作者:小涵 | 来源:互联网 | 2018-04-19 15:15 阅读: 1682 以mysql_开始的未定义引用错误 当你链接到应用程序以使用MyS ...
- mysql未定义_解析:以mysql_开始的未定义引用错误
当你链接到应用程序以使用MySQL客户端库时,可能会遇到以mysql_开始的未定义引用错误,如下所示: /tmp/ccFKsdPa.o: 在函数`main'中: /tmp/ccFKsdPa.o(.te ...
- 嵌入式Linux配置内核后编译过程中报未定义引用错误的解决
我想要在Linux下驱动摄像头ov5640,使用的SoC是NXP的IMX6ULL,内核版本4.1.15.我想要一个比较纯净的嵌入Linux环境,所以打算自己裁剪和移植uboot+linux内核+roo ...
- linux c 编译 未定义的引用,c – Linux makefile中的未定义引用
我想在linux下构建我的应用程序,但我无法使用我的makefile来实现它. 问题是我要链接的静态库.我得到了很多"未定义的引用"错误消息,如: undefined refere ...
- 对main 未定义的引用_错误:ID返回1个退出状态(对“ main”的未定义引用)
对main 未定义的引用 As we know that, 我们知道 Each program must have a main() function, compiler starts executi ...
最新文章
- laravel-admin 安装(总结)
- 从本地的win传文件到本地的linux上,pscp.exe实现本地windows下的文件下载(传输)到linux上...
- 【已解决】运行Eclipse出错:Failed toload the JNI shared library
- 实现库函数strcpy
- SDNU 1423.入学考试(01背包)
- 逆向工程生成的Mapper.xml以及*Example.java详解
- 作者:陈康(1976-),男,博士,清华大学计算机科学与技术系、深圳清华大学研究院、浙江清华长三角研究院鄞州创新中心副教授...
- matlab时频分析工具箱安装_科研小班 | 加州大学伯克利分校 | 物理、电子工程:MATLAB信号和数据处理课题...
- 和与余数的和同余理解_余数与同余解析
- 年会宣布 996 后,那些保持沉默的人
- python之路--day10-闭包函数
- 湖北移动中兴B860AV2.1_S905L_线刷固件包
- 酒店客房管理系统源代码 java_《宾馆客房管理系统》JAVA源代码
- yolo训练自己的数据所用到的标记图片的工具
- 详解Spring Ioc(控制反转)
- [Vue warn]: Unknown custom element: <rules-set> - did you register the component correctly? For recu
- 3.8女王节里的宝妈生意经
- i908的串口连接中断的解决[转]
- csgo自建局域网服务器,CSGO(KZ模式)服务器搭建常见问题答疑
- 计算机专业网名英语翻译,个性网-网名-各种英文网名带翻译*英文网名
热门文章
- [RK3288][Android6.0] USB OTG模式及切换
- [RK3568 Android11] 开发之APP应用切换USB OTG模式
- pb 修改数据窗口种指定字段位置_在PB中控制 数据窗口 列修改属性.doc
- 汇编语言复习~作业一(下)
- 深入理解RGB与CMYK色彩模式
- 博客凉凉,备份新浪博文图片或留下博友的评论要抓紧
- Codeforces 1287C Garland
- amoeba mysql exists_Amoeba实现MySQL数据库读写分离
- 多媒体操作系统──BeOS
- 在OpenCV里实现二维离散卷积1