美文网首页
C/C++ static基本用法

C/C++ static基本用法

作者: lxr_ | 来源:发表于2018-12-27 16:42 被阅读0次

作用:

1.修饰普通变量,修改变量的存储区域生命周期,使变量存储在静态区,在main函数运行前就分配了空间,如果有初始值就用初始值初始化它,如果没有初始值就用默认初始化值;

2.修饰普通函数,表明函数的作用范围,仅在定义该函数的文件内才能使用。在多人开发项目时,为了防止与他人命名函数重名,可以将函数声明为static;

3.修饰成员变量,修饰成员变量是所有的对象只保存一个变量,而且不需要生成对象就可以访问该成员,static类成员不像普通的类数据成员,static类数据成员独立于一切类对象存在。static类数据成员是与类关联的,但不与该类定义的对象有任何关系,就是static不会像普通类数据成员一样每一个类对象都有一份,全部类对象是共享一个static类成员的,例如A类对象修改了static成员为1,那么B对象对应的static类对象成员的值也会是1.;

4.修饰成员函数,修饰成员函数使得不需要生成对象就可以访问该函数,但是在static函数内不能访问非静态成员

5.在使用static变量时,就和使用普通的全局变量一样,区别只是要在变量名前加上类范围符的前缀::

6.static修饰的变量先于对象存在,所以static修饰的变量要在类外初始化。因为static是所有对象共享的,必须要比对象先存在。

好处:

用static修饰的成员变量在对象中是不占内存的,因为他不是跟对象一起在堆或者栈中生成,用static修饰的变量在静态存储区生成的,所以static修饰可以节省对象的内存空间。例如,创建多个object对象,而他们都有共有的一个变量。

#include<iostream>

using namespace std;

class object

{

public:

    static int number;//声明static变量

    int val;

    static void test()  //修饰成员函数

    {

        //cout << val << endl;报错,不能访问非静态成员

        cout << number << endl;

        printf("这是静态成员函数\n");

    }

};

int object::number = 1;//类外初始化,不需要生成对象就可以访问该变量

int main()

{

     cout << object::number << endl;

     //int object::number = 1;报错,只能在类外初始化

    //object::val = 2;报错,无对象不能访问val

    object::test();//不需要生成对象就可以访问该成员函数

    return 0;

}

相关文章

  • C/C++ static基本用法

    作用: 1.修饰普通变量,修改变量的存储区域和生命周期,使变量存储在静态区,在main函数运行前就分配了空间,如果...

  • Static 属性的理解

    C++ 的 static 有两种用法: 面向过程程序设计中的static 和面向对象程序设计中的 static. ...

  • Kotlin学习笔记——基础语法篇之控制语句

    if...else... 用法 Kotlin中if...else...基本用法与C/C++,java中相同 例子 ...

  • Java中的static关键字

    前言 相对于C++而言,Java中static功能的语义和用法有了很大的不同。在本文中,我们不讨论static在C...

  • C++ 学习(2) ---- 基本语法介绍

    C++ 基本语法(2) C++基础语法说明模板NA运算符重载NA强制类型转换static_cast,const_c...

  • 后端常见问题(全)

    C++ static 关键字有哪些用法 说说继承和组合的概念?什么时候应该用继承?什么时候应该用组合 C++ 的菱...

  • C++中static数据成员详解

    本文和大家分享的主要是c++中static数据成员的相关用法及源码示例,希望能帮助大家更好的学习C++。 stat...

  • C++中的static关键字的总结

    C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通...

  • C++中的Static

    C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通...

  • C/C++ 中 static 的用法

    C语言: 1、静态全局变量:1、在全局变量前加上 static 关键字,即为静态全局变量2、静态全局变量在程序的数...

网友评论

      本文标题:C/C++ static基本用法

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