[C++学习笔记]--析构函数、静态成员变量、静态成员函数

来源:互联网 发布:佳能ip2880s清零软件 编辑:程序博客网 时间:2024/06/11 09:57

    1.程序每一次new一个新对象的时候,就会调用一次构造函数,每一次delete的时候,会调用一次析构函数。

    2.

认真看,这个代码中,构造函数什么时候被构造,析构函数什么时候被析构。


    静态成员变量:在说明前面加了static关键字的成员。例如:static int nTotalArea;//静态成员变量

    静态成员函数:static void function();//静态成员函数

  

   1.普通成员变量每个对象有各自的一份,而静态成员变量一共就一份,为所有对象共享。

   2. sizeof运算符不会计算静态成员变量。例如:class CMyclass{ int n; static int s; }; 那么sizeof(CMyclass) == 4

   3.普通成员函数必须作用于某个对象,而static成员函数并不具体作用于某个对象

   4.静态成员不需要通过对象就能访问。

         a.CMyclass::print_total();//public成员直接访问

         b.CMyclass r ; r.print_total();//虽然通过对象访问,但是不是意味着print_total()作用于对象r上,也不是属于r。

         c.CMyclass r ; CMyclass *ptr = &r ; prt -> print_total();//通过指针访问

         d.CMyclass r ;CMyclass & ref = r;ref.print_total();//通过引用来访问

    5.静态成员变量本质上是全局变量,哪怕一个对象也不存在,类的静态成员变量也是存在的。静态成员函数本质上是全局函数,

    6.那么为什么不直接设置全局变量或者全局函数呢?答案:设置静态成员这种机制的目的是将和某些类紧密相关的全局变量和函数写到类里面,看上去像一个整体,易于维护和理解。

    7.在静态成员函数中,不能访问非静态成员变量,也不能调用非静态成员函数。

0 0
原创粉丝点击