读书人

这个程序错在哪解决办法

发布时间: 2012-04-04 16:38:51 作者: rapoo

这个程序错在哪
#include<iostream.h>
class A
{
public:
static int a=100;
};

void main()
{
cout<<A::a<<endl;
}

这个程序错在哪

[解决办法]

C/C++ code
#include<iostream.h>class A{public:static int a;};A::a = 10;void main(){cout<<A::a<<endl;}
[解决办法]
static成员在外部定义,注意与const成员的区别
[解决办法]
类声明里不能赋值
应该像1楼那样把赋值语句放在外面
[解决办法]
可以定义为
const static int a = 100;
[解决办法]
类内不能进行成员初始化
[解决办法]
静态成员变量的初始化要放在类外进行
[解决办法]
欲要对变量赋值,则代码编译后就确定给变量分配内存。类中的非静态数据成员,在没有实例化时,是不分配内存的,从而对其赋值是非法的。类中的静态数据成员在编译时,编译器会对每个类中的静态数据成员分配内存空间,静态数据成员不属于类对象私有。总之,只要有赋值的语句 ,在编译后,就确定为变量分配空间。

读书人网 >C++

热点推荐