vc++对类内const static int变量初始化后的处理
来源:互联网 发布:白金数据 网盘 编辑:程序博客网 时间:2024/06/05 19:45
昨天论坛里有人发帖http://topic.csdn.net/u/20081110/21/58b849c2-efcd-473e-a59f-9e783223a15c.html提出相关问题。 发现,在类内初始化了const static int变量后,总是出现连接错误。后经测试后果然是,但并不总是。但这样显然是跟标准不符的,标准说对于const static int是可以在类内初始化的,但还是需要在类外定义。 现把存疑记录在此。 的确是个很奇怪的问题。 后来在其他论坛也查到类似问题http://www.megasolutions.net/cplus/Is-this-a-bug-of-the-C++-compiler-of-VS-2005_-77566.aspx?hide_quotes=no
1、int型的const static 成员可以不必类外定义?或许吧,试过几个编译器的确如此。
2、但标准是说需要类外定义的呀。用编译器测试,当类定义、调用程序都在一个文件中时,类外定义const static成员都顺利通过了(gcc vs2008)
3、但进一步看,分开类定义和调用程序成两个文件时,问题来了。gcc顺利通过。vs2008出现重复定义,连接出错。这时候无论你把类外定义语句放到哪个文件,vs都通不过。(当多个文件include类声明,只要有文件在类外定义了变量,所有的include了头文件的其他cpp都会出连接错)
这样看起来,vs是把这种类内的const static int变量自动定义和分配了空间。但奇怪在,当只有一个文件include类声明时,又是可以类外定义的。不知道是不是属于vs的bug。(至少是跟标准不符吧)
- vc++对类内const static int变量初始化后的处理
- vc++对类内const static int变量初始化后的处理
- 类内const static(static const)成员变量初始化问题
- 类的const成员变量、static const、static成员变量的初始化
- 类的const成员变量、static const、static成员变量的初始化
- const static const static成员变量的初始化
- c++类中static、const、static const成员变量初始化
- c++类中const/static/const static成员变量初始化
- static const 型成员变量的初始化
- c++类中const static变量初始化
- 初始化const, static, const static, static const成员变量
- 初始化const, static, const static, static const成员变量
- 类的const变员变量和static成员变量的初始化总结
- const 成员 static 成员 const static int 成员初始化
- const 成员 static 成员 const static int 成员初始化
- static/static const 的初始化
- const static与相关成员变量的初始化
- C++基础知识---static const成员变量的初始化
- .Net中复杂打印的灵活方法
- .Net中复杂打印的灵活方法
- .Net中复杂打印的灵活方法
- struts2 jquery 插件实现ajax异步请求(网上资料)
- directshow filter中添加属性页
- vc++对类内const static int变量初始化后的处理
- guides.rubyonrails.org 读书笔记(四)
- 如果表格内容为""空时表格样式就不显示
- 如何创建QuickAction在Android对话 类似于苹果的效果
- request.getParameter(),request.getAttribute(),request.setAttribute();
- select 1 from ... sql语句中的1代表什么意思
- cegui中Image的offset成员
- 变量不能太普通
- windows服务命令安装