美文网首页C++
关于static关键字

关于static关键字

作者: 我是大宝啊 | 来源:发表于2016-08-05 10:22 被阅读0次

1. 在C语言中的用法

在C语言中,static关键字意味着:隐藏

  • static变量存储在静态数据区,在程序一开始运行时就完成内存分配工作,因而在定义时必须进行初始化
  • 在函数体内定义的局部变量,在该函数下次被调用时,继续保持原有值。这相当于实现了“全局变量的功能”,但仅在该函数体内可见
  • 在函数体外定义的变量,以及static函数,在该模块(文件)中可见;

2. 在C++中的用法

对于普通的static变量及函数,其作用与C语言类似。而在面向对象部分,

  • static成员变量及static成员函数属于整个类,不属于任何一个对象。
  • 对于static成员变量来说,由于需要在程序一开始运行时就分配内存,而类定义体只是声明了一个类,并不会分配实际的内存空间。因而,static成员变量必须在类定义体外进行初始化。不过,有一个例外情况,static常量整型数据成员或表达式可以在类定义体内完成初始化
  • 而对于成员函数来说,既可以在类定义体内,也可以在类定义体外完成定义
  • 需注意的是,static关键字只需要在类定义体内使用一次,当在类定义体外进行成员变量初始化或成员函数定义时,不再需要重复使用。

最后,static成员变量与non-static成员变量相比,主要有两点不同:

  1. static成员变量允许是incomplete type,也就是说,
class Foo {
private:
    static Foo a; //ok
    Foo b; //not ok
}
  1. static成员变量可以作为成员函数的default argument。

最后的最后,关于C++类具体如何使用static变量及static函数,可参考这篇文章
关于C++类实例的内存分配,可参考这篇文章

相关文章

  • Java static 的一两点使用

    这篇文章是关于Java static关键字的使用,主要会介绍以下的内容: static 的概念 static的各种...

  • OC中static、const、extern关键字理解

    static关键字 static关键字用于修饰变量。 static修饰局部变量当使用static修饰局部变量时, ...

  • 关于static关键字

    1. 在C语言中的用法 在C语言中,static关键字意味着:隐藏 static变量存储在静态数据区,在程序一开始...

  • static关键字

    Static关键字概述 static(静态)关键字可以用于修饰变量、方法和代码块。我认为static关键字的主要用...

  • 【Java】关键字

    一、 static关键字 static关键字的总结: static关键字 可以再没有创建对象的时候进行调用类的元素...

  • Java学习Day03

    今日学习内容总结 Static关键字 Arrays类 Math类 继承 Static关键字 一旦用了static,...

  • java基础-day11-static关键字

    static关键字和接口 1. static关键字【重点】 1.1 static修饰静态成员变量 1.1.1 为什...

  • C语言中的static关键字

    @TOC C语言中的static关键字 static 关键字,意为静态。 static 变量 特性:全局变量在函数...

  • Static关键字

    C语言中的static关键字和Java的static关键字意义不一样。 1 用static修饰函数 static用...

  • C基础知识

    基础问题 1.static关键字和const关键字。 static: 作用于变量时:用static声明局部变量--...

网友评论

    本文标题:关于static关键字

    本文链接:https://www.haomeiwen.com/subject/swocsttx.html