static 使用总结

第一、类静态成员

1.初始化

静态成员变量必须初始化

类的静态成员可以是公有的也可以是私有的:

无论公私必须在外部初始化。如

int A::_i = 1;   //必须这样初始化 //初始化完毕才能赋值

2、访问

公有的外部可以直接访问(A::b=5;),私有的则不可以。

3、类成员间调用

类成员函数可以调用静态成员变量和静态成员函数,反之则不行。

#include<iostream>
#include<windows.h>
using namespace std;

class A
{
public:
 A(int a,int x){b=a;c=x;}
 void dip();
 void dct(){ct();}
 static int b;
 static void ct();

private:
    static int c;
};
int A::c=0;//初始化
int A::b=0;

void A::dip()
{
    cout<<b<<" "<<c<<endl;
 
}

void A::ct()
{
   cout<<"静态成员函数"<<endl;
}

void main()
{
 A a(2,3);
 a.dip();

 A::b=5;
// A::c=6; //出错
 a.dip();

    cout<<A::b;
 //cout<<A::c;//出错
 
 A::ct();//直接调用静态成员函数
 a.dct();//类成员函数调用静态成员函数

 system("pause");
}

 

第二、变量和函数的总结:

静态存储区
全局变量,静态变量会放在这个区域,事实上,全局变量也是静态的。)

  1、当对函数的局部变量使用关键字static时,在整个程序运行期间,这个局部变量是永远占有分配内存,(由上括号得)像所有的局部变量对它们的函数私有。(局部变量在函数结束时候释放)。

 2、当对文件域的变量使用static时,变量成为源文件的私有变量。然而和所有文件域变量一样,在整个程序执行期间为其分配的内存一直被这些变量占有。(全局变量嘛)

3、当在函数说明之前加上关键字static时,函数名对于说明该函数的源文件是私有的(也就以为着这个函数没又外部链接)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值