C++静态成员
综述:
- 静态成员:静态类中的成员加入static 修饰符,即是静态成员,可以使用类名+静态成员名访问此静态成员,因为静态成员存在于内存,非静态成员需要实例化才会分配内存,所以静态成员不能访问非静态成员,因为静态成员存在于内存,所以非静态成员可以直接访问类中的静态成员。静态成员属于整个类(不属于具体的某个对象),是被每个对象共享的,可以被某个对象调用.
一个小栗子:aa.A::f1()静态成员函数是对象共有的
- 非静态成员:所以没有加static的成员都是非静态成员,当类被实例化后,可以通过实例化的类名进行访问,非静态成员的生存期决定于该类的生存期,而静态成员则不存在生存期的概念,因为静态成员始终驻留在内存中。
静态成员变量:
静态成员函数不具有this指针,从这个意义上讲,它无法访问属于类对象的非静态数据成员,也无法访问非静态成员函数,它只能调用其余的静态成员函数。
void A::PostMainMessage(...)//该函数是static,不会传入this,因此内部不能调用(也可以理解为访问)非静态变量和函数. {//内部需要保证是static if(m_pMessageQueue/*静态*/) m_pMessageQueue->PostMessage(...)/*静态*/; }
注意这里的调用不是点操作(.)或者箭头操作(->),这个是正常的对象对成员的访问,无关static.
https://www.cnblogs.com/VVingerfly/p/7128162.html
新战场:https://blog.csdn.net/Stephen___Qin