C++ 类静态成员变量存取出错 undefined reference to 'xxx'
来源:互联网 发布:收徒网源码带后台 编辑:程序博客网 时间:2024/05/09 02:55
刚开始用C++写程序,遇到了一个很奇怪的问题,就是在类定义的面定义了一个静态成员变量,但在使用时编译器报错称变量不是类的成员。
文件a.h内容:
/**********************A.h****************************/#define A_Hclass A{ static int num1; int num2; A();}#endif
文件a.c内容:
/**************************a.c**************/#include "a.h"void A::A(){ num2=1;//正确 num1=2;//报错}
编译 错误:undefined reference to `A::num2'。
问题分析,对于a.h中的内容是不分配存储空间的,只是向编译器作出声明。对于num2,他是在实例化时分配内存的,而num1是一个静态成员,他在是在定义时就分配空间。
num1=2;之所以会报错就是我们还没有定义,没有为他分配空间。
/**********************A.h****************************/#define A_Hclass A{ static int num1;//这里只是声明,并没有定义 int num2;//声明,在实例化时分配内存 A();}#endif
/**************************a.c**************/#include "a.h"int A::mun1;//定义,分配内存,以后A每一个对象(实例)的创建都不再分配内存void A::A(){ num2=1; num1=2; //不报错了}
- C++ 类静态成员变量存取出错 undefined reference to 'xxx'
- C++ 类静态成员变量存取出错 undefined reference to 'xxx'
- C++(Qt)静态成员类undefined reference to “xxx”
- undefined reference to XXX
- undefined reference to: xxx
- Undefined reference to XXX
- undefined reference to *** —— 类成员
- Undefined reference to vtable 'xxx'
- undefined reference to 'xxx'问题解决
- undefined definition reference to XXX
- Linux C/C++ 开发遇到 undefined reference to xxx
- 编译出错 "undefined reference to"
- 编译出错 "undefined reference to" .
- 使用static类成员变量,编译显示undefined reference to错误
- 类中静态变量未定义导致undefined reference to static class member问题的解决方法
- undefined reference to `vtable for XXX '
- undefined reference to 'vtable for xxx'
- extern usage error "undefined reference to `xxx' "
- oracle中rownum与rowid使用方法
- SURVIVING THE TOP TEN CHALLENGES OF SOFTWARE TESTING: A PEOPLE-ORIENTED APPROACH
- gcc和g++的区别以及extern "C"的作用
- 添加强名称
- 用rsync,crontab实现Linux服务器间的定时备份
- C++ 类静态成员变量存取出错 undefined reference to 'xxx'
- 程序员笔试题----2012腾讯实习生笔试题
- 教你如何迅速秒杀掉:99%的海量数据处理面试题 .
- 大学毕业后拉开差距的真正原因
- C#多线程——Timer
- VB作业之素数
- linux系统移植 书
- 关于C#中调用C++dll传递回调函数的问题
- JS操纵DOM 、参考