//1静态成员不属于对象 属于整个类
//1.1当我们用一个只有一个静态成员的类去声明对象时 我们得到的sizeof(对象)=1,如果是空类的话,就是这个结果。
//2静态成员在编译时预留空间 运行时分配空间
//静态成员有两种访问方式 1)通过对象访问 2)通过类访问 注意:在类内声明 在类外定义(声明时加static,定义时可不加)
//且所有对象共享这个成员
#include<iostream>
using namespace std;
class Person
{
public:
static int height;
};
int Person:: height;
void test01()
{
Person p1;
p1.height = 12;
cout << p1.height << endl;
cout << Person::height << endl;
Person p2;
p2.height = 199;
cout << p1.height;
}
int main()
{
test01();
}
//静态函数
//两种访问方式 通过对象 通过类
//所有对象共享这个成员函数
//静态成员函数只能访问静态成员属性
#include<iostream>
using namespace std;
class Person
{
public:
int weight;
static int height;
static void func1()
{
cout << "正在访问静态成员函数" << endl;
cout << height << endl;
//cout << weight << endl; 非静态成员 访问出错
}
};
int Person::height = 2;
void test01()
{
Person p1;
p1.func1();
Person::func1();
}
int main()
{
test01();
}
我们可以这样理解:因为静态成员函数没有this指针 如果你让他去访问非静态成员属性 假设你在给它赋值的话 那么它到底给哪个对象的成员属性赋值呢?god knows it。