static成员函数和static成员
2024-09-05 05:06:13
C++的静态成员是和类关联的,它属于某个类,但是不属于某个特定的对象。静态成员变量只存储一份供所有对象共用。所以在所有对象中都可以共享它。使用静态成员变量实现多个对象之间的数据共享不会破坏隐藏的原则,保证了安全性还可以节省内存。
但是可以通过对象调用静态成员函数,虽然我们一般不会这么做:
class Point
{
public:
void init()
{
}
static void output()
{
}
}; void main()
{
Point pt;
pt.init(); //OK
pt.output(); //OK
}
在类外实现时不加static关键字,只有在类内声明时才加static。
我们一般会用类名直接调用静态成员函数:
Point::output(); //OK 这是更常见的调用方式
静态成员函数中不能调用非静态成员。因为静态成员函数的作用就是为了处理静态成员。而静态成员和静态成员函数是没有this指针的,但是非静态成员是有this指针的,所以static member function不能调用非静态成员。
为什么静态成员和静态成员函数没有this指针?
this指针的值是当前被调用的成员函数所在的对象的起始地址,而静态成员只属于类,不属于对象,也就没有this指针了。
最新文章
- IE浏览器版本判断 HTML代码
- appium过程中的问题
- MongoDB索引创建(5)
- thinkphp设置session有效时间
- 命名空间$.fn
- 硬件断点 DrxHook
- Ajax提交整个表单
- input屏蔽历史记录
- 切服务器时请注意robots.txt文件
- Python: 测试函数是否被调用
- hdu 1134 Game of Connections
- 网络上下载的Ghost系统含威胁
- linux使用过程中遇到的问题和解决方法
- 修改oracle数据库内存报错
- python3 --- locale命名空间让程序更加安全了
- Microsoft.Identity的IPasswordHasher加密的默认实现与运用
- pyquery的使用
- wampserver 手动启用停用命令
- centos的 / ~ - 的意思
- python的IDLE界面回退代码语句
热门文章
- python用户评论标签匹配的解决方法
- ORA-03114: not connected to ORACLE
- jQuery.fn.extend与jQuery.extend的区别
- 强化学习——Q-learning算法
- IOS上的 Audio Memos SE 如何分享和传输录音到电脑?
- node.js基础---增删
- 如何创建spring web 工程(maven工程)
- Oracle 11.2.0.4_Linux单例篇
- jdk1.8 Maven 的安装教程
- Redis 学习笔记(篇十):Sentinel