Chinaunix

标题: 为什么在类内初始化静态数据成员编译器不报错误? [打印本页]

作者: 中国可爱小牛    时间: 2010-03-16 21:29
标题: 为什么在类内初始化静态数据成员编译器不报错误?
#include<iostream.h>
class TestClass
{

public:
        TestClass()
        {
                static int i=0;
                cout<<++i<<endl;       
        }
};
void main()
{
        TestClass obj1;
        TestClass obj2;
        return;
}

百度过了,找不到答案。请教:类内不是只能声明静态数据成员而不能初始化吗?这里初始化了怎么一点问题都没有呢?
编译器:VC 6.0  系统环境:  xp   professional  sp2
作者: eookoo    时间: 2010-03-16 22:59
你百度過但沒 Google 過 .....

你這是在 constructor 裡, 我更好奇的反而是 cout 跟 endl 沒有報錯嗎?....

  1. class A
  2. {
  3. public:
  4.      static int a = 0;        // 类内 .... error
  5.      static const b = 0;    // ok
  6.      A()
  7.      {
  8.             static int c = 0;        // constructor , okay
  9.       }
  10. };

复制代码

作者: 中国可爱小牛    时间: 2010-03-18 22:56
回复 2# eookoo


    没有报错,不信你可以试试




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2