C++静态

对于静态数据成员来说不依赖于对象的实例化而依赖于类  所以他的初始化不再构造函数内 

访问有两种方式:

1、通过类访问 类名::静态数据成员

2、通过实例化对象访问 实例化对象的名称.静态数据成员名称

静态成员函数不能访问正常的成员函数因为静态数据成员是随着类的产生而产生的 其他的成员是在类实例化的时候才产生的

注意事项:

静态数据成员必须单独初始化

静态成员函数不能调用非静态数据成员和非静态数据成员函数

静态数据成员只有一份,且不依赖对象而存在

#include<iostream>
using namespace std;
class Tank
{
public:	
	Tank(char code)
    {
		m_cCode=code;
		s_iCount++;
		cout<<"Tank"<<endl;
	}
	~Tank()
	{
		s_iCount--;
		cout<<"~Tank"<<endl;
	}
	void fire()
	{
		cout<<"Tank--fire"<<endl;
	}
	static int getCount()
	{
        return s_iCount;
	}
private:
	char m_cCode;
	static int s_iCount;
};
int Tank::s_iCount=0;
int main()
{
	Tank *p=new Tank('A');
    cout<<p->getCount()<<endl;
	Tank *q=new Tank('B');
	cout<<Tank::getCount()<<endl;
    delete p;
	cout<<Tank::getCount()<<endl;
	delete q;
	cout<<Tank::getCount()<<endl;
	system("pause");
	return 0;
}

注意不能对静态数据成员用const修饰哦 因为const是给this指针加修饰 而静态数据成员没有this指针哦

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值