C++静态成员函数&静态数据成员

本文详细介绍了C++中静态成员变量和静态成员函数的概念与使用方式,包括它们的特性、初始化方法以及如何与其他成员函数相互调用。此外,还探讨了this指针的应用范围及其限制。

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

/*======================================================================
模板:
1、模板函数 <-----> 模板类
			  |
			  v
		  标准模板类
2、友元函数			友元类
3、静态成员函数		静态数据成员
4、运算符重载
========================================================================
静态成员函数 静态数据成员
class Tank
{
public:
	Tank(){s_iCount++;}
	static int getCount(){return s_iCount;}
	static int s_iCount;
}
int Tank::s_iCount=0;//和类共存亡 和对象无关
int main()
{
	Tank::getCount();
	//通过类访问		也可以的通过类实例化对象访问
	Tank tank;
	tank.getCount();
}
=======================================================================*/
#include <iostream>
#include <string>
using namespace std;
class Tank
{
public:
	Tank(string name) { 
		this->name = name;
		s_iCount++; 
	}
	static int s_iCount;
	void fire()//传递了隐形的this指针 fire(Tank *this)
	{
		cout << this->name << endl;//直接访问
		cout << this->s_iCount << endl;//直接访问
	}
	static int getCount() 
	{
		//this指针只能用于非静态成员函数
		//cout << this->name << endl;//直接访问
		//cout << this->s_iCount << endl;//直接访问
		return s_iCount;
	}
private:
	string name;
};
int Tank::s_iCount = 0;//和类共存亡 和对象无关
int main()
{
	//cout << Tank::getCount() << endl;
	//通过类访问		也可以的通过类实例化对象访问
	Tank tank("001");
	tank.fire();
	return 0;
}
/*======================================================================
后记:
	静态成员函数可以调用静态数据成员
		不可以调用普通成员函数和普通数据成员
	普通成员函数可以调用静态成员函数和静态数据成员
	this指针只能用于非静态成员函数
	静态数据成员必须单独初始化
=======================================================================*/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值