Chinaunix首页 | 论坛 | 博客
  • 博客访问: 339510
  • 博文数量: 88
  • 博客积分: 1695
  • 博客等级: 上尉
  • 技术积分: 1380
  • 用 户 组: 普通用户
  • 注册时间: 2009-08-06 15:48
个人简介

喜欢美食, 旅行..

文章分类

全部博文(88)

文章存档

2014年(2)

2013年(12)

2012年(14)

2010年(8)

2009年(52)

我的朋友

分类: C/C++

2009-10-21 10:02:49

一、静态成员(static)

    (1) 静态成员属于类所有,非静态成员属于类的实例所有。

       (2)   每创建一个类的实例,都会在内存中为非静态成员新分配一块存储;

              非静态成员属于类所有,为各个类的实例所公用,无论类创建了多少实例,

              类的静态成员在内存中只占同一块区域。

二、静态方法

       (1) 静态方法属于类所有,类实例化前即可使用。

       (2)   非静态方法可以访问类中的任何成员,静态方法只能访问类中的静态成员。

              因为静态方法在类实例化前就可以使用,而类中的非静态变量必须在实例化
           
              之后才能分配内存,这样,静态方法调用时无法判断非静态变量使用的内存
          
              地址。所以无法使用.而静态变量的地址对类来说是固定的,故可以使用。

三、静态构造函数

      (1)   用于对静态字段、只读字段等的初始化。
             
      (2)   添加static关键字,不能添加访问修饰符,因为静态构造函数都是私有的。  
     
      (3)   类的静态构造函数在给定应用程序域中至多执行一次:只有创建类的实例或者
   
             引用类任何静态成员才激发静态构造函数
          

      (4)   静态构造函数是不可继承的,而且不能被直接调用。
            
      (5)   如果类中包含用来开始执行的 Main 方法,则该类的静态构造函数将在调用 Main

             方法之前执行。任何带有初始值设定项的静态字段,则在执行该类的静态构造函数

             时,先要按照文本顺序执行那些初始值设定项。


       (6)   如果没有编写静态构造函数,而这时类中包含带有初始值设定的静态字段,那么编译

               器会自动生成默认的静态构造函数。

       (7)   无参数的构造函数可以与静态构造函数共存。尽管参数列表相同,但一个属于类,一个

               属于实例,所以不会冲突。

 

MSDN对静态构造函数的解释:

      静态构造函数用于初始化任何静态数据,或用于执行仅需执行一次的特定操作。在创建

       第一个实例或引用任何静态成员之前,将自动调用静态构造函数。

  

静态构造函数具有以下特点:

  • 静态构造函数既没有访问修饰符,也没有参数。

  • 在创建第一个实例或引用任何静态成员之前,将自动调用静态构造函数来初始化

  • 无法直接调用静态构造函数。

  • 在程序中,用户无法控制何时执行静态构造函数。

  • 静态构造函数的典型用途是:当类使用日志文件时,将使用这种构造函数向日志文件中写入项。

  • 静态构造函数在为非托管代码创建包装类时也很有用,此时该构造函数可以调用 LoadLibrary 方法。

文章转自 http://www.cnblogs.com/longe_mail/archive/2009/04/07/1430721.html

阅读(1291) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~