C++类的静态成员详细讲解

来源:互联网 发布:mac finder 拷贝路径 编辑:程序博客网 时间:2024/06/02 06:32
在C++中,静态成员是属于整个类的而不是某个对象,静态成员变量只存储一份供所有对象共用。所以在所有对象中都可以共享它。使用静态成员变量实现多个对象之间的数据共享不会破坏隐藏的原则,保证了安全性还可以节省内存。

静态成员的定义或声明要加个关键static。静态数据成员是在定义对象的时候定义的。

静态成员可以通过双冒号来使用即<类名>::<静态成员名>。 

在C++中类的静态成员变量和静态成员函数是个容易出错的地方,本文先通过几个例子来总结静态成员变量和成员函数使用规则,再给出一个实例来加深印象。希望阅读本文可以使读者对类的静态成员变量和成员函数有更为深刻的认识。

总结

一。静态成员函数中不能调用非静态成员。(无this指针)

二。非静态成员函数中可以调用静态成员。因为静态成员属于类本身,在类的对象产生之前就已经存在了,所以在非静态成员函数中是可以调用静态成员的。

三。静态成员变量使用前必须先初始化(如int MyClass::m_nNumber = 0;),否则会在linker时出错。

四。静态成员函数可以初始化,但只能在类外进行初始化。(int box::height = 10//表示对BOx类中成员的初始化)


其实说白了,静态成员与对象没有半毛钱关系,使用的时候注意静态成员与类的关系就好了。

0 0