1.静态成员
❶.静态数据成员与静态成员函数
❷.无this指针,可有返回值、指针类型、返回类型
因为 -> 静态成员函数并不是针对某一个类的实例对象,而属于整个类的,为所有的实例化对象共享。它在作用域的范围内是全局的,独立于类的对象以外,它只对类内部的静态数据成员做操作。当实例化一个类的对象时,里面不存在静态成员。this指针相当于一个类的实例的指针,this用来操作对象化的内容,既然静态成员函数和静态数据成员都是独立于类的实例化对象之外,不能是this指针,也不能操作非静态成员
2.静态数据成员
❶.格式:static int a; (赋值在类外进行)
❷.静态数据成员是 类的所有对象共享的成员
❸.private的静态数据成员,仅被类内函数访问
❹.public的静态数据成员,在类外部可以不使用成员函数直接访问
3.静态成员函数
❶.格式:static 类型 函数名 {}
❷.类的静态成员函数 只能 访问类的静态数据成员,不能访问普通数据成员
#include <iostream>
using namespace std;
class Sample
{
private:
int x;
static int y;
public:
Sample(int a)
{
x=a;
y+=x;
}
static void print(Sample s) //静态只能访问静态,x改为s.x
{
cout<<"x="<<x<<",y="<<y<<endl;
}
};
int Sample::y=5; //类外赋值
int main()
{
Sample s1(10);
Sample s2(15);
Sample::print(s1);
Sample::print(s2);
}