面向对象static与面向过程static

2013年8月29日 由 Creater 留言 »

面向过程static

  1. static修饰的变量。

    1.1 static修饰的全局变量。
        全局变量默认初始化为0;
        static修饰的全局变量放在全局数据区(也是内存的一个区域,在使用前也需要分配);
        static修饰的全局变量只在声明它的文件可见,其他文件不可见。
    1.2 static修饰的局部变量;
       static修饰的局部变量放在全局数据区;
       static修饰的局部变量作用于在于定义他的局部作用域;
      静态局部变量在程序执行到该对象的声明处时被首次初始化,即以后的函数调用不再进行初始化;
       默认初始化为0.

  2. static修饰的函数

    2.1 static修饰的函数作用域仅仅在声明它的文件可见,其他文件不可见;

面向对象的static

  1. static修饰的类数据成员

    static修饰的数据成员受public,private,protected限制;
    static修饰的数据成员所有对象共享一个副本;
    static修饰的数据成员访问时可以使用对象.来访问,或者类::类访问;
    static修饰的数据成员初始化在类外,定义时需要写明类型,所属类,无需加static

    • 静态数据成员初始化与一般数据成员初始化不同。静态数据成员初始化的格式为:
      <数据类型><类名>::<静态数据成员名>=<值>
    • 类的静态数据成员有两种访问形式:
      <类对象名>.<静态数据成员名> 或 <类类型名>::<静态数据成员名>
  2. static修饰类的成员函数

    同样受访问权限保护;
    只能访问类的static数据成员,或者调用类的static成员函数;
    函数参数没有隐含的this指针;
    访问规则,使用.,->,::;
    <类名>::<静态成员函数名>(<参数表>)
    定义时无需再加static修饰。

广告位

发表评论

你必须 登陆 方可发表评论.