C++类中的Static关键字

 

静态成员是能够独立访问的,也就是说,无须建立任何对象实例就能够访问,而静态成员函数可不创建对象就能够被使用。
  或者说静态函数与通常函数没有太大的区别,只是访问有限制,静态变量跟通常的全局变量的区别就是访问有限制。函数

static变量this

static变量不像普通的变量,static变量独立于一切类对象处在。static修饰的变量先于对象存在,因此static修饰的变量要在类外初始化。由于static是全部对象共享的东西嘛,必需要比对象先存在的spa

 

class test
{
private:
public:
    static int i;
};
int test::i = 100;//此句包含了声明和赋值,初始化不受private和protected访问限制,可是如果priivate,下面main函数就没法访问
int main()
{
    cout << test::i << endl;
    return 0;
}

  

好处:用static修饰的成员变量在对象中是不占内存的,由于他不是跟对象一块儿在堆或者栈中生成,用static修饰的变量在静态存储区生成的,因此用static修饰一方面的好处是能够节省对象的内存空间。因此通常类const变量通常改成static const变量,能够节省一些空间。指针

    -静态成员变量属于整个类全部
    -静态成员变量的生命期不依赖于任何对象,为程序的生命周期
    -能够经过类名直接访问公有静态成员变量
    -全部对象共享类的静态成员变量
    -能够经过对象名访问公有静态成员变量
    -静态成员变量须要在类外单独分配空间
    -静态成员变量在程序内部位于全局数据区 (Type className::VarName = value)

code

static成员函数           对象

static函数也是类函数,因此在写定义时也要写明属于哪一个类。与不一样类函数不一样的是,它没有传入this指针,正由于没有this指针,因此static类成员函数不能访问非static的类成员,只能访问 static修饰的类成员。
  静态成员函数不能够同时声明为 virtual、const、volatile函数。
blog

类的成员函数有以下特性:    -静态成员函数是类的一个特殊的成员函数
    -静态成员函数属于整个类全部,没有this指针
    -静态成员函数只能直接访问静态成员变量和静态成员函数
    -能够经过类名直接访问类的公有静态成员函数
    -能够经过对象名访问类的公有静态成员函数
    -定义静态成员函数,直接使用static关键字修饰便可
生命周期

      

相关文章
相关标签/搜索