/*======================================================================
模板:
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指针只能用于非静态成员函数
静态数据成员必须单独初始化
=======================================================================*/
C++静态成员函数&静态数据成员
最新推荐文章于 2025-07-12 10:57:40 发布