首页 > 编程语言 > 详细

c++ 静态成员遇到的坑总结

时间:2014-01-15 08:41:46      阅读:562      评论:0      收藏:0      [点我收藏+]

1.对于类静态变量的初始化,用下面方法。

1 //.h头文件中
2 class a
3 {
4 public:
5   const static int i;
6 };

静态成员的初始化应放在.cpp中而不是.h中。
因为h可能被多个cpp包含(#include),这种情况下,如果是在h中初始化静态成员的 就会造成编译期间的“重定义”错误。

1 //.cpp文件
2 const int a::i=1; //定义前置

定义要前置放在类实现最前面,避免有时候放到了用到的函数后面。

 

2.对于静态常量的初始化,vc6编译器仅支持下面方法
  

bubuko.com,布布扣
1 //.h头文件
2 class a 
3 {
4   public:
5   const static int i;
6 };
7 //.cpp文件
8 const int a::i=1;
bubuko.com,布布扣

 

注意这种方法一定要把const int a::i=1;放到类实现部分的最前面。
因为后边成员函数可能需要用到他的值。

gcc、mingw除了上面的方法之外也可用下面的方法:

1 class a 
2 {
3 public:
4   const static int i=1;
5 };

 

3.类中定义常量不要忘了枚举类型

c++ 静态成员遇到的坑总结

原文:http://www.cnblogs.com/lexus/p/3513911.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!