C++里的静态(static)成员函数(不能用const的原因+static在c++中的第五种含义)
来源:互联网 发布:家庭收支记账软件 编辑:程序博客网 时间:2024/06/05 00:51
C++里的静态成员函数(不能用const的原因+static在c++中的第五种含义)
C++里的静态成员函数(不能用const的原因+static在c++中的第五种含义)
----自 core c++
static在c++中的第五种含义:用static修饰不访问非静态数据成员的类成员函数。这意味着一个静态成员函数只能访问它的参数、类的静态数据成员和全局变量。
不能用const的原因:一个静态成员函数访问的值是其参数、静态数据成员和全局变量,而这些数据都不是对象状态的一部分。而对成员函数中使用关键字const是表明:函数不会修改该函数访问的目标对象的数据成员。既然一个静态成员函数根本不访问非静态数据成员,那么就没必要使用const了。
什么时候使用静态数据成员和静态函数呢?
定义数据成员为静态变量,以表明此全局数据逻辑上属于该类。
定义成员函数为静态函数,以表明此全局函数逻辑上属于该类,而且该函数只对静态数据、全局数据或者参数进行操作,而不对非静态数据成员进行操作。
static的第一种含义:修饰全局变量时,表明一个全局变量只对定义在同一文件中的函数可见。
static的第二种含义:修饰局部变量时,表明该变量的值不会因为函数终止而丢失。
static的第三种含义:修饰函数时,表明该函数只在同一文件中调用。
static的第四种含义:修饰类的数据成员,表明对该类所有对象这个数据成员都只有一个实例。即该实例归 所有对象共有。
static的第五种含义:修饰类成员函数,如上。
- C++里的静态成员函数(不能用const的原因+static在c++中的第五种含义)
- C++里的静态(static)成员函数(不能用const的原因+static在c++中的第五种含义)
- 有关static成员函数不能用const修饰的问题
- C++里的静态成员函数不能用const的原因
- C++里的静态成员函数为何不能用const?
- 【C++】类的静态常量数据成员! static const
- C/C++——为什么类的静态成员函数在定义的时候不写static?
- 没有躲过的坑--类中的静态成员变量(static or const static)
- C++static静态成员函数
- C语言中的静态(static)函数
- static的含义以及其在C/C++中的区别
- static的含义以及其在C/C++中的区别
- static的含义以及其在C/C++中的区别
- static的含义以及其在C/C++中的区别
- 类静态成员static(C++)
- 类静态成员static(C++)
- 【C/C++】类中的static成员、static const成员和const成员
- 【C/C++】类中的const成员 static成员
- 由浅入深探究mysql索引结构原理、性能分析与优化
- 呵呵
- 爱的太深终究会是伤 莫沧分享伤感日志
- 简明教程:架设 PPTP VPN 及在 Linux 上远程连接 VPN
- Codeforces Problemset 30D(#30 div.1 D)
- C++里的静态(static)成员函数(不能用const的原因+static在c++中的第五种含义)
- js在ie与firefox中不兼容的问题总结
- 2-1000内的完数,亲
- 闲得无聊之冒泡排序
- 由于短期理财基金到期的最后一天是按活期利率盘算
- C++ 第十周任务-分数求和3
- JavaScript单元测试框架介绍
- android 获取硬件的ID
- sipp -- help 参数与在线帮助