tip:如果看不懂,建议补一点理论基础哦
#include <iostream>
//类和结构中的静态
//静态是共用一个地址的 因此此处的结果是指向的地址
struct Entity
{
static int x,y;//stati后这个类只能有一个实例
//如果在print中static可以更好理解
static void Print()//如果仅结构体没有static,是无法访问的此函数的,因为静态方法中没有类实例,不知道具体访问哪一个x,y
{
std::cout<<x<<","<<y<<std::endl;
}
};
//static后用这个链接参数,否则会链接失败
int Entity::x;
int Entity::y;
//这就是我们最初的非静态类方法的实例,而只有静态方法相对于去掉Entity e
//static void Print(Entity e){
// std::cout<<e.x<<","<<e.y<<std::endl;
//}
int main()
{
Entity e;
e.x=2;
e.y=3;
Entity e2;
e2.x=7;
e2.y=8;
//Entity e1={5,8};//如果结构体中是static int x,y; 则会报错,xy不再是类成员
//Print 在static后只能这样调用
// e.Print();
// e2.Print();//static后结果会变成最后的一个数据调用了两次(几次取决于有多少组调用)
Entity::Print();
Entity::Print();//所以两次调用结果相同是很好理解滴
//e1.Print();
std::cin.get();
}