C++类的静态数据成员和普通数据成员的区别

来源:互联网 发布:百度人工智能有哪些 编辑:程序博客网 时间:2024/05/22 01:57
 
静态数据成员和普通数据成员区别较大,体现在下面几点:

class test{  public:test(){}~test(){}  public:static int getCount()  //静态成员函数{return m_nCount;}  private:static int m_nCount; //静态数据成员};int test::m_nCount=0;



(1)普通数据成员属于类的一个具体的对象,只有对象被创建了,普通数据成员才会被分配内存。而静态数据成员属于整个类,即使没有任何对象创建,类的静态数据成员变量也存在。

(2)因为类的静态数据成员的存在不依赖与于任何类对象的存在,类的静态数据成员应该在代码中被显示的初始化,一定要在类外进行。

(3)外部访问类的静态成员只能通过类名来访问,例如:test::getCount()。

(4)类的静态成员函数无法直接访问普通数据成员(可以通过对象名间接的访问),而类的任何成员函数都可以访问类的静态数据成员。

(5)静态成员和类的普通成员一样,也具有public、protected、private3种访问级别,也可以具有返回值、const修饰符等参数。
0 0
原创粉丝点击