静态成员函数和数据成员

静态数据成员由static关键字修饰,必须定义为私有成员,不能从类外访问,基本格式是static+数据类型名+变量名;然而他的初始化方法也与别的不同,是由:数据类型名 类名::静态数据成员名=值;静态数据成员的格式:类名::静态数据成员名。

#include <iostream.h>

class StaticTest1

{  

 

int x;

static int count;

public:

StaticTest1(int a)

{

x=a;

count++;

}

void printvalue()

{  

cout<<"实例变量x="<<x<<endl;

cout<<"类变量count="<<count<<endl;

}

};

int StaticTest1::count=0;//在类外进行初始化,这和count的访问权限无关

void main()

{

StaticTest1 st1(1);

cout<<"创建第一个对象后对象1:"<<endl;

st1.printvalue();

StaticTest1 st2(2);

cout<<"创建第二个对象后对象1:"<<endl;

st1.printvalue();

cout<<"创建第二个对象后对象2:"<<endl;

st2.printvalue();

}

静态函数的使用格式为:类名::静态函数名([实参列表]);特别注意:

   静态成员函数只能直接访问静态数据成员、其他静态成员函数,不能直接使用类中的实例变量和其他非静态的成员函数。

   静态成员函数和一般成员函数一样也有访问权限限制,私有静态成员函数不能在类体外访问,但是,静态成员函数和静态数据成员可以由任意访问权限的其他函数访问。

#include <iostream.h>

class StaticTest2

{   

int x;

static int count;

public:

StaticTest2(int a)

{

x=a;

}

static void setValue()

{

count++;

}

void printvalue()

{  

cout<<"实例变量x="<<x<<endl;

cout<<"静态变量count="<<count<<endl;

}

};

int StaticTest2::count=0;

void main()

{

StaticTest2 st(1);  

st.printvalue();

cout<<"调用静态方法后:"<<endl;

StaticTest2::setValue();

st.printvalue();

}

 

这是哦我写的关于静态函数的理解,可能还不太懂,还需要更深入地理解!!!所以我要good good study!!day day up!!!

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值