静态成员函数和数据成员

本文详细阐述了静态数据成员的定义、初始化及访问方式,并通过代码实例展示了静态函数的使用规则与区别。强调静态成员在类设计中的作用与限制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

#include<iostream.h>

class StaticTest1

{

intx;

staticintcount;

public:

StaticTest1(inta)

{

x=a;

count++;

}

voidprintvalue()

{

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

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

}

};

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

voidmain()

{

StaticTest1st1(1);

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

st1.printvalue();

StaticTest1st2(2);

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

st1.printvalue();

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

st2.printvalue();

}

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

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

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

#include<iostream.h>

classStaticTest2

{

intx;

staticintcount;

public:

StaticTest2(inta)

{

x=a;

}

staticvoidsetValue()

{

count++;

}

voidprintvalue()

{

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

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

}

};

intStaticTest2::count=0;

voidmain()

{

StaticTest2st(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、付费专栏及课程。

余额充值