zoukankan      html  css  js  c++  java
  • C++中静态数据成员,静态成员函数(static)

    类中的静态成员
        1. 在类中的静态数据,属于类共享,不属于对象独有
        2. 即使没有定义对象,静态成员也是存在的
        3. 静态数据成员在类中说明,在类外定义 并且会给他分配内存空间,并初始化(一经定义则必须初始化)
        4. 可以通过对象去访问静态成员,但是这里容易让人产生误解,以为他们是成员变量(静态成员是被所有对象共享的
            所以也可以去修改它) 我们一般通过   类名::静态成员  去访问它们
        5. 他的生存周期一直存在于整个程序的生命周期
     
    静态成员的定义
     int Class : : a=10;
    数据类型+类名+作用域符号+变量名=10;
     
    静态成员函数
        1. 静态成员函数属于一个类,而不属于类中的任何对象
        2. 静态成员函数的说明和定义与静态数据成员一样,函数可以实现在类体内,也可以实现在类体外
        3. 静态成员函数在实现中,可以直接使用静态成员,也可以通过对象来使用非静态成员!!
            这里说明,静态成员函数不能是虚函数,不能直接访问非静态成员,因为他是类所有,而不是对象所有
            虚函数和静态成员是对象创建的时候才会有的,这里静态成员函数不属于对象,那么也就不能定义为虚函数,更不能使用成员变量
     
    C语言的static和C++static总结:
    static在C中的用法,对于C++来说是全盘接受的 两者的不同就在于C++中的类使用
    C中的static变量其影响不在于作用域,在于其存储方式
    C中的static函数,即内部函数,它其实是将访问权限限值在文件内部,文件外部无法访问
    也是一种隐藏机制(类似当成private) 如果要访问需要加上extern  而extern是默认的
     
    C语言中局部静态变量 作用域是函数体内,生存周期是整个程序运行期间
  • 相关阅读:
    一张图片入门Python
    4.1. 如何在Windows环境下开发Python
    你必须知道的EF知识和经验
    XUnit的使用
    如何使用NUnit
    Entity Framework 不支持DefaultValue
    Have You Ever Wondered About the Difference Between NOT NULL and DEFAULT?
    Validation failed for one or more entities. See 'EntityValidationErrors' property for more details
    Entity Framework 与多线程
    sqlite中的自增主键
  • 原文地址:https://www.cnblogs.com/Tempt/p/9987510.html
Copyright © 2011-2022 走看看