c++中,static,和const,以及引用类型的作用
2015-08-10 19:15
295 查看
这是现阶段我自己总结的,希望各位补充一下:
先说static:
它表示静态
所以1、隐藏,全局变量或者全局函数加上static则其他文件无法访问,只在当前文件生效
2、保持变量的内容持久,由于static变量存储在全局区一经初始化则知道程序结束菜户被释放
3、默认初始化变量的值为0
4、在定义的时候将成员变量或者成员函数加上static,则变为属于类的成员,所有对象共享
const 关键词的作用
1、修饰变量 const int a=10,a是常量,在声明的时候初始化一次,以后不能在赋值
2、修饰指针 分为常量指针,和指针常量
常量指针就是指向常量的指针,指针所指的内容必须为常量 const int * p
指针常量,指针的内容是常量,也就是指针的指向不能改变 int *const P
3、修饰引用。使引用成为常饮用,无法通过引用修改变量的值
4、修饰数组。数组成为常熟组,无法修改里面的元素的值,只能访问
5、修饰函数参数。不产生变量的副本,提高效率
修饰函数参数。使类的成员函数成为const成员函数,在函数中无法修改类的成员变量的值
const int & print (const int a) const
第一个const修饰返回值,代表返回一个常引用,不能修改返回值的值
第二个const修饰形参,表示不能再这个函数里改变形参的值
第三个const 修饰函数,表示这个函数是一个常函数,在类中不能修改类中的成员变量的值
同时,这个函数只能调用常成员变量
引用类型
引用类型,就是给变量起一个别名,格式: 类型标识符& 函数名 (形参列表及说明){函数体}
1、不能返回一个局部变量的引用,因为局部变量会在函数返回后被销毁,因此被返回的引用就成了野指针,程序会崩溃
2、不能返回new分配的内存的引用,这样可能会造成能存泄露
3、可以返回类成员的引用,单式最好是const
本文出自 “西门吃牛” 博客,请务必保留此出处http://ximenchiniu.blog.51cto.com/9503623/1683404
先说static:
它表示静态
所以1、隐藏,全局变量或者全局函数加上static则其他文件无法访问,只在当前文件生效
2、保持变量的内容持久,由于static变量存储在全局区一经初始化则知道程序结束菜户被释放
3、默认初始化变量的值为0
4、在定义的时候将成员变量或者成员函数加上static,则变为属于类的成员,所有对象共享
const 关键词的作用
1、修饰变量 const int a=10,a是常量,在声明的时候初始化一次,以后不能在赋值
2、修饰指针 分为常量指针,和指针常量
常量指针就是指向常量的指针,指针所指的内容必须为常量 const int * p
指针常量,指针的内容是常量,也就是指针的指向不能改变 int *const P
3、修饰引用。使引用成为常饮用,无法通过引用修改变量的值
4、修饰数组。数组成为常熟组,无法修改里面的元素的值,只能访问
5、修饰函数参数。不产生变量的副本,提高效率
修饰函数参数。使类的成员函数成为const成员函数,在函数中无法修改类的成员变量的值
const int & print (const int a) const
第一个const修饰返回值,代表返回一个常引用,不能修改返回值的值
第二个const修饰形参,表示不能再这个函数里改变形参的值
第三个const 修饰函数,表示这个函数是一个常函数,在类中不能修改类中的成员变量的值
同时,这个函数只能调用常成员变量
引用类型
引用类型,就是给变量起一个别名,格式: 类型标识符& 函数名 (形参列表及说明){函数体}
1、不能返回一个局部变量的引用,因为局部变量会在函数返回后被销毁,因此被返回的引用就成了野指针,程序会崩溃
2、不能返回new分配的内存的引用,这样可能会造成能存泄露
3、可以返回类成员的引用,单式最好是const
本文出自 “西门吃牛” 博客,请务必保留此出处http://ximenchiniu.blog.51cto.com/9503623/1683404
相关文章推荐
- C与C++的细微区别——省略形式参数名
- C++ opencv 数字识别
- C++的namespace
- c/c++处理字符串函数
- JNA java调用c/c++代码
- JNA调用C语言动态链接库学习实践总结
- 2015年8月10日 C语言 宏和快排
- C语言-06-复杂数据类型
- C++_命名空间namespace 与 using编译指令 与 using声明使用。
- (๑• . •๑)Eclipse的C++排版方式
- 学习笔记-有关C语言的指针的类型和本质
- 堆排序(C++版)
- c语言计算器
- VC++ 如何在显示对话框的时候,指定焦点控件!
- 趣味数学应用:求小球在一条斜线上的运动轨迹
- C++中new是否进行初始化的问题
- C++_布局(placement)new操作符
- 代码静态检查-cppcheck
- C++的XML编程经验――LIBXML2库使用指南
- hdu 2024 C语言合法标识符