先来看代码:

#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++:未定义引用静态类成员?相关推荐

  1. 对 mysql_init 未定义的引用_解析:以mysql_开始的未定义引用错误

    当你链接到应用程序以使用MySQL客户端库时,可能会遇到以mysql_开始的未定义引用错误,如下所示: /tmp/ccFKsdPa.o: 在函数`main'中: /tmp/ccFKsdPa.o(.te ...

  2. 对YAML :: LoadFile的未定义引用

    对YAML :: LoadFile的未定义引用 起语: 版权声明: 原文: http://www.sylar.top/blog/?p=103 YAML 介绍 YAML是一种结构化的文档结构,类似于js ...

  3. Linux下C语言 对pow、exp未定义引用问题

    问题描述 头文件使用math库时会出现"未定义引用"问题 报错: /tmp/cct7CPFw.o:在函数'main'中: 19012705.c:(.text+0x88):对'pow ...

  4. mysql未定义_以mysql_开始的未定义引用错误

    以mysql_开始的未定义引用错误 作者:佚名 来源:CNZZ 2008-12-26 当你链接到应用程序以使用MySQL客户端库时,可能会遇到以mysql_开始的未定义引用错误,如下所示: /tmp/ ...

  5. mysql未定义_以mysql_开始的未定义引用错误_MySQL

    以mysql_开始的未定义引用错误_MySQL 作者:小涵 | 来源:互联网 | 2018-04-19 15:15 阅读: 1682 以mysql_开始的未定义引用错误 当你链接到应用程序以使用MyS ...

  6. mysql未定义_解析:以mysql_开始的未定义引用错误

    当你链接到应用程序以使用MySQL客户端库时,可能会遇到以mysql_开始的未定义引用错误,如下所示: /tmp/ccFKsdPa.o: 在函数`main'中: /tmp/ccFKsdPa.o(.te ...

  7. 嵌入式Linux配置内核后编译过程中报未定义引用错误的解决

    我想要在Linux下驱动摄像头ov5640,使用的SoC是NXP的IMX6ULL,内核版本4.1.15.我想要一个比较纯净的嵌入Linux环境,所以打算自己裁剪和移植uboot+linux内核+roo ...

  8. linux c 编译 未定义的引用,c – Linux makefile中的未定义引用

    我想在linux下构建我的应用程序,但我无法使用我的makefile来实现它. 问题是我要链接的静态库.我得到了很多"未定义的引用"错误消息,如: undefined refere ...

  9. 对main 未定义的引用_错误:ID返回1个退出状态(对“ main”的未定义引用)

    对main 未定义的引用 As we know that, 我们知道 Each program must have a main() function, compiler starts executi ...

最新文章

  1. laravel-admin 安装(总结)
  2. 从本地的win传文件到本地的linux上,pscp.exe实现本地windows下的文件下载(传输)到linux上...
  3. 【已解决】运行Eclipse出错:Failed toload the JNI shared library
  4. 实现库函数strcpy
  5. SDNU 1423.入学考试(01背包)
  6. 逆向工程生成的Mapper.xml以及*Example.java详解
  7. 作者:陈康(1976-),男,博士,清华大学计算机科学与技术系、深圳清华大学研究院、浙江清华长三角研究院鄞州创新中心副教授...
  8. matlab时频分析工具箱安装_科研小班 | 加州大学伯克利分校 | 物理、电子工程:MATLAB信号和数据处理课题...
  9. 和与余数的和同余理解_余数与同余解析
  10. 年会宣布 996 后,那些保持沉默的人
  11. python之路--day10-闭包函数
  12. 湖北移动中兴B860AV2.1_S905L_线刷固件包
  13. 酒店客房管理系统源代码 java_《宾馆客房管理系统》JAVA源代码
  14. yolo训练自己的数据所用到的标记图片的工具
  15. 详解Spring Ioc(控制反转)
  16. [Vue warn]: Unknown custom element: <rules-set> - did you register the component correctly? For recu
  17. 3.8女王节里的宝妈生意经
  18. i908的串口连接中断的解决[转]
  19. csgo自建局域网服务器,CSGO(KZ模式)服务器搭建常见问题答疑
  20. 计算机专业网名英语翻译,个性网-网名-各种英文网名带翻译*英文网名

热门文章

  1. [RK3288][Android6.0] USB OTG模式及切换
  2. [RK3568 Android11] 开发之APP应用切换USB OTG模式
  3. pb 修改数据窗口种指定字段位置_在PB中控制 数据窗口 列修改属性.doc
  4. 汇编语言复习~作业一(下)
  5. 深入理解RGB与CMYK色彩模式
  6. 博客凉凉,备份新浪博文图片或留下博友的评论要抓紧
  7. Codeforces 1287C Garland
  8. amoeba mysql exists_Amoeba实现MySQL数据库读写分离
  9. 多媒体操作系统──BeOS
  10. 在OpenCV里实现二维离散卷积1