C++ const 和static的总结以及使用
一 static的使用 (作用域和存储方式)
1.作用域---------->隐藏
静态函数跟静态全局变量的作用类似 (静态函数不能被其它文件所用; 其它文件中可以定义相同名字的函数,不会发生冲突)
int a = 10;
void add()
{
static int a=0; //对该函数进行隐藏,只作用于该函数内,这个函数只执行一次,下次就不会再给a 进行赋值操作
printf("a = %d",a);
}
int main()
{
` a++;
add();
printf("a = %d",a);
}
结果 : a=0 a=10;
函数(static 里面不包含this指针)
a.静态函数只能访问静态成员变量(不需要this指针)
b.静态函数不能访问普通成员函数,反之成立(静态成员函数没有this指针)
2. 存储方式-------------->共有的(它的值会被保存,下次调用仍保持上一次数值)
a.局部变量 : 在该函数执行变量结束后,该变量不会被释放,继续保存
b.全局变量 : 表示当变量在全局内都可以访问
c.类成员变量 : 表示这个变量为全类所有的(所有对象都公用这个变量,它不是某一个对象的私有的)
二 const的使用 (只具有读的工能)
- const 常量:定义时就初始化,以后不能更改。
- const 形参:func(const int a){};该形参在函数里不能改变
- const修饰类成员函数:该函数对成员变量只能进行只读操作
- 可以作为重载函数 void func(Test * const this(默认的)) const ---------=>void func(const Test * const this):这个函数只具有读的功能,不能对对其变量进行修改
因为this指针为常量,不能变化,它和static成员函数类似,普通函数可以访问常成员函数,反之则不成立.常成员函数只能访问常成员变量
三 不同点
static : 为静态变量,只和类有关系,和对象无关,即使没有对象也可以调用静态函数和变量.
数据类型 类名::静态数据成员名=值 int Test::a = 10;
const : 初始化必须有构造函数初始化,不同对象const的数值不一样.
C++ const 和static的总结以及使用的更多相关文章
- const extern static 终极指南
const extern static 终极指南 不管是从事哪种语言的开发工作,const extern static 这三个关键字的用法和原理都是我们必须明白的.本文将对此做出非常详细的讲解. co ...
- const、static和extern的正确使用方式
我们在看一些大牛的第三方时,里面会出现很多const.static和extern,尤其是const和static,const和extern的结合使用,直接令很多小伙伴懵逼了,今天就详细讲解一下这三个关 ...
- 《OOC》笔记(1)——C语言const、static和extern的用法
<OOC>笔记(1)——C语言const.static和extern的用法 C语言中const关键字用法不少,我只喜欢两种用法.一是用于修饰函数形参,二是用于修饰全局变量和局部变量. 用c ...
- 到底是 const 还是 static readonly
真的一样? const 和 static readonly 常在程序中用来声明常量,调用方法也没有什么不同,他们真的一样吗?我们可以做个试验. 程序集内的常量 现在我们建立一个程序,里面有一个MyCl ...
- C: const and static keywords
原文:http://www.noxeos.com/2011/07/29/c-const-static-keywords/ C: const and static keywords Ok, once a ...
- 【转】const和static readonly
我们都知道,const和static readonly的确很像:通过类名而不是对象名进行访问,在程序中只读等等.在多数情况下可以混用.二者本质的区别在于,const的值是在编译期间确定的,因此只能在声 ...
- (C#) What is the difference between "const" and "static readonly" ?
const int a must be initialized initialization must be at compile time readonly int a can use defaul ...
- (转) C++ static、const和static const 以及它们的初始化
const定义的常量在超出其作用域之后其空间会被释放,而static定义的静态常量在函数执行后不会释放其存储空间. static表示的是静态的.类的静态成员函数.静态成员变量是和类相关的,而不是和类的 ...
- C# const与static的理解
C# const与static的理解 static readonly与 const变量,作用是一样的,无论访问修饰符是不是public,还是其它(private. protected.interna ...
- c#中const、static、readonly的区别
1. const与readonly const ,其修饰的字段只能在自身声明时初始化. Readonly 是只读变量,属于运行时变量,可以在类初始化的时候改变它的值.该类型的字段,可以在声明或构造函数 ...
随机推荐
- 使用bcp工具对boost库裁剪
有些时候,我们需要通过源代码来发布我们的产品,在使用了CI工具之后,一般我们要求每天对源码进行构建,以防止代码不可用了还不自知.如果我们使用了Boost库,我们就需要在构建的过程中将Boost同时构建 ...
- struts框架值栈问题三之值栈的创建和ActionContext对象的关系
3. 问题三 : 值栈对象的创建,ValueStack 和 ActionContext 是什么关系? * 值栈对象是请求时创建的 * ActionContext是绑定到当前的线程上(一个Action访 ...
- C#以记事本(指定程序)打开外部文档(指定文档)
System.Diagnostics.Process.Start("notepad.exe", "D:\\a.txt");
- Html使用Iframe无刷新上传文件,后台接收
html代码:我是发送请求到teacher_center.aspx,不是到.ashx一般处理程序里,需要加 runat="server",有空我再试试发送请求到 .ashx 里 & ...
- Jmeter中的XPath Assertion
XPath 是一门在 XML 文档中查找信息的语言.XPath 可用来在 XML 文档中对元素和属性进行遍历. XPath 是 W3C XSLT 标准的主要元素,并且 XQuery 和 XPointe ...
- 社交类APP原型模板分享——Tinder
Tinder是国外的一款手机交友APP,作用是基于用户的地理位置,每天“推荐”一定距离内的四个对象,根据用户在 Facebook 上面的共同好友数量.共同兴趣和关系网给出评分,得分最高的推荐对象优先展 ...
- 2.自己搭建的一个简易的ioc容器
1.persondao类namespace MyselfIoC{ public class PersonDao { public override string ToStri ...
- JavaScript修改注册表
JavaScript修改注册表 2009-04-14 11:22:13| 分类: JS相关 | 标签: |字号大中小 订阅 注册表有关安全设置项的说明: 注册表路径: HKEY_CURRE ...
- windows8.1 初体验
昨天装了Win8.1,Office2013 由于是英文版的,需要装一下中文语言包,然后就能使用自带的微软拼音输入法了. 我喜欢双屏时的桌面背景,选择span时一张图片可以跨越2个屏幕,比win7的好. ...
- 20155335俞昆《java程序设计》第七周总结
学号 2016-2017-2 <Java程序设计>第X周学习总结 ## 教材学习内容总结 Lambda 的语法概览 String[] names={“Justin”,”cater ...