C++中的static

来源:互联网 发布:淘宝一键复制 编辑:程序博客网 时间:2024/04/29 16:18
C++中static的用法:
static数据成员:1、静态数据成员没有进入程序的全局名字空间,而是定义在静态内存区,因此不存在程序中与其他全局名字冲突问题。
2、使用静态数据成员可以隐藏信息(在C语言中,C语言中可以讲一个数据成员定义为static,此数据成员只能在本文件中调用),
在C++中static不受private、protected和public的限制,可以再任何地方进行声明,但private。protected和public对其仍有限制(private定义的不能
在类外访问)。
3、static数据成员必须在类定义时初始化,并且必须要单独定义,或者调用静态构造函数来定义并且无论定义多少个类的对象static只初始化一次,
访问static数据成员必须使用类的作用域运算符来访问。
static成员函数:
1、无论是静态数据成员还是静态函数,定义时不能是内联的,并且只能定义一次,所以它通常放到一个类的实现文件中。
2、静态数据成员可以出现在嵌套类中(类中定义的类),但在局部类(函数中定义的类)中不能出现静态数据成员。
3、静态成员函数不能访问一般的数据成员,而只能访问静态数据成员,也只能调用其他的静态成员函数。通常当前对象的地址(this)是被隐式传递到被
调用的函数的。但一个静态成员函数没有this,所以它无法访问一般成员。这使得静态成员函数在速度上有比全局函数有少许的增长。
0 0
原创粉丝点击