static 类成员详解。

来源:互联网 发布:jd lsat 知乎 编辑:程序博客网 时间:2024/06/07 20:21

        在C++ 中,如果要想定义静态变量,需要使用关键字:static。其作用范围在一个文件内,从程序开始时分配空间,结束时释放,且静态变量只有本文件内代码可见,在其他文件中不可见。

         下面,我主要讲下static在类成员中需要注意的事项。

1. 在.h头文件中定义 static变量后,需还要在该头文件对应的.cpp文件中定义。static成员不是通过构造函数进行初始化,而是应该定义时进行初始化。例如:

     A.h:                                                            对应的cpp:A.cpp

     class A                                                          double A::a = 0.0;  //进行初始化。

    {

      public:                                                          double A::get_a()                                                                            

                 static double get_a();                       {

      private:                                                                 return a;

                   static double a;                                }

    }; 

     如不初始化,或者初始化的位置不对,将会出现下面的错误:

     error LNK2001: 无法解析的外部符号 "private: static double。


2.类中static 成员变量的使用方法。

 A u1;

 A *u2 = &u1;

1>aa = u1.a;                          2> aa = u2->a;                   3> aa = A::a;


3.static 成员函数。

1> 当我们在类的外部定义static 成员函数时,无需重复指定static保留字。如上面类A的定义。

2> static 函数没有this指针。


                                                                                                                                                                                                                                       如有哪写的不对,请多指点,多见谅。

0 0
原创粉丝点击