c++静态变量的问题。。

来源:百度知道 编辑:UC知道 时间:2024/05/25 10:34:36
#include<iostream.h>
class a
{
public:
static int num1;
};
class b
{
public:
void num2()
{
int a::num1=99;
}
};

void main()
{

}
//请问下在函数内如何对静态变量进行赋值?static变量是不是别的文件不能进行调用了?

不是的
static 成员变量是说:

它在该类型的各对象之间是共享的.
因为要用对象实例去引用来对其操作,所以在外文件也可以使用

#include<iostream.h>
class a
{
public:
static int num1;
};

int a::num1= 0;//////////////////////////////这个是重点

class b
{
public:
void num2(a& c)
{
c.num1=99; //////////////////////////
}
};

void main()
{

}

要注意区分
文件范围内的静态变量
类的静态成员

前者别的文件不能调用
后者整个程序全都可调用的

基础技术书中的定义要理解透
还有一种静态变量,在函数中使用的,因此,“静态”有三种

一个类共用一个静态数据成员,是为了保证只有一个实体,声明和初始化如下:
class a
{
static int num1;
public:
a()
{
num1++;
}
};
int a::num1=0; //静态数据成员在类外分配空间和初始化

static 就只有声明的类有权力去调用
如果想其他地方调用 可以声明某函数为友元
如:
class b;
class a
{
static int num1;
int x;
public:
a()
{
num1++;
}
friend abprint(const a& q,const b&t);