贡的组词有哪些:关于类的静态与非静态成员变量及方法

来源:百度文库 编辑:九乡新闻网 时间:2024/05/06 05:02:05
数据成员:
数据成员可以分静态变量实例变量两种.
静态成员:静态成员变量是和类相关联的,可以作为类中"共"有的变量(是一个共性的表现),他不依赖特定对象的存在,访问的时候通过类名加点操作符加变量名来访问.
实例成员:实例成员变量是和对象相关联的,访问实例成员变量依赖于实例的存在.
 
函数成员:
方法可以主要分为静态方法,实例方法
静态方法:静态方法是不属于特定对象的方法,静态方法可以访问静态成员变量,静态方法不可以直接访问实例变量,可以在实例函数调用的情况下,实例变量做为参数传给静态方法。静态方法也不能直接调用实例方法,可以间接调用,首先要创建一个类的实例,然后通过这一特定对象来调用静态方法。
实例方法:一个实例方法的执行与特定对象关联,他的执行需要一个对象存在。实例方法可以直接访问静态变量和实例变量,实例方法可以直接访问实例方法、和静态方法,静态方法的访问方式为类名加点操作符加变量名。当多个实例对象存在时,内存中并不是存在美个特定的实例方法的拷贝,而是,相同类的所有对象都共享每个实例方法的一个拷贝(实例方法只占用“一套”空间)。

 

应用场合:

静态:构造的时候是在堆中生成,在结束前不会被释放与改变.
         大量的数据访问 由于已经生成且不被释放,所以就不会在栈中反复创建实例,节约空间时间。

         对于大数据量的访问操作,应该使用静态方法,可以提高性能。

非静态:反复调用方法 有可能造成使用过的变量或方法被系统回收,而再创建的问题。


静态方法的使用场合:
一、该方法与任何实例无关。
二、该方法与特定实例无关。
三、该方法是运算符。
四、该方法不修改实例。

关于静态方法

1、static声明的变量和方法会被放到内存的堆区,即使不调用也会被分配空间,而非static情况只有在使用的时候才被分配空间,使用完就释放掉。
2、static不需要你创建一个实例就可以调用。

 

当一个类的成员被声明为static时,它可以在这个类的对象被创建之前且没有任何对象的引用存在时被访问。因此,static成员多数被用于全局目的。可以将方法和变量都声明为static。当载入一个类时,一个又一个static块只执行一次。也就是说一些比较通用在系统中应用的比较广泛的函数,一般是采用静态方法。而不太通用的函数则可以使用非静态方法,因为在系统中使用的不是很多,不象通用函数那么广泛。实例化反而比静态方法更适合一些,它实例化所消耗的资源就可能比静态方法消耗的资源要少一些。所以一般都是根据实际需求来决定是否采用静态方法。     对于非结构的static   变量:在h   文件中
class   test
{
    public   :
test();
static   int   m_stcount;
};
//////////////////////////
.cpp     文件中

int   test::m_stcount=100;
test::test()
{
    //initialize   other   variable
}