首页 > 编程语言 >c++ static修饰的函数作用与意义

c++ static修饰的函数作用与意义

时间:2022-08-30 21:58:53浏览次数:86  
标签:文件 函数 静态 成员 c++ static 修饰

static修饰的函数叫做静态函数,静态函数有两种,根据其出现的地方来分类:

1.如果这个静态函数出现在类里,那么它是一个静态成员函数;

静态成员函数的作用在于:调用这个函数不会访问或者修改任何对象(非static)数据成员

其实很好理解,类的静态成员(变量和方法)属于类本身,在类加载的时候就会分配内存,可以通过类名直接去访问;非静态成员(变量和方法)属于类的对象,所以只有在类的对象产生(创建类的实例)时才会分配内存,然后通过类的对象(实例)去访问。

   

   

2.如果它不是出现在类中,那么它是一个普通的全局的静态函数。

这样的static函数与普通函数的区别是:用static修饰的函数,限定在本源码文件中,不能被本源码文件以外的代码文件调用。而普通的函数,默认是extern的,也就是说它可以被其它代码文件调用。

   

换句话说,在函数的返回类型前加上关键字static,函数就被定义成为静态函数。普通 函数的定义和声明默认情况下是extern的,但静态函数只是在声明他的文件当中可见,不能被其他文件所用。

因此定义静态函数有以下好处

<1> 其他文件中可以定义相同名字的函数,不会发生冲突。

<2> 静态函数不能被其他文件所用。

   

来自 <https://www.cnblogs.com/hellowooorld/p/11281654.html>

标签:文件,函数,静态,成员,c++,static,修饰
From: https://www.cnblogs.com/libxing/p/16640977.html

相关文章

  • C++11可变参数模板(函数模板、类模板)
    https://yngzmiao.blog.csdn.net/article/details/105247065......
  • C++:const常量的存储位置
    ......
  • c++的void*
    ......
  • 实验一 c++简单程序设计
    题目代码第一题#include<iostream>usingnamespacestd;//求数字根intdigital_root(intn){ while(n>=10){ n=n/10+n%10; } returnn;}in......
  • c++的随机数
    一直以来用cstdlib里的rand来抽卡过题 C++11有了新的库,似乎能有更好的随机数生成.梅森旋转法?C++随机数知乎这里贴一下代码,方便以后使用随机数生成 #include<ra......
  • c++ 复习
    取消编译优化选项-fno-elide-constructors:优化返回值。函数返回对象的时候,可以省略函数内return的那次复制,以及调用函数“=”的那次复制。-std=c++0x。参考:【C+......
  • C++之STL
    1STL概论STL(标准模板库):STL的分类:容器,算法和迭代器。STL提供了6大组件:容器,算法和迭代器,仿函数、适配器(配接器)、空间配置器。2三大组件的初识容器:#define_CR......
  • 阅读《计算机图形学编程(使用OpenGL和C++)》12 - 光照
    现在最常见的光照模型称为“ADS”模型,因为它们基于标记为A、D和S的3种类型的反射。●环境光反射(Ambientreflection)模拟低级光照,影响场景中的所有物体。●漫反射(Diffuse......
  • CCF 201409-1 相邻数对(C++)
    因为题目给的是不同的整数,所以就排序,然后for遍历找出差值为1的就好了#include<iostream>#include<bits/stdc++.h>#include<cstdio>usingnamespacestd;intn;i......
  • C++学习笔记-day02
    1、数据类型-字符串型:用于表示一串字符c风格字符串char变量名[]="字符串值"c++风格字符串string变量名="字符串值"2、数据类型-布尔类型作用:布尔数据类型代表真或......