博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++ static 语义
阅读量:2427 次
发布时间:2019-05-10

本文共 896 字,大约阅读时间需要 2 分钟。

二、类的static functions

1、独立于类的具体对象的存取操作

在static member function引入C++之前,C++标准要求所有的member functions都必须通过class object调用。但事实上,并不是所有的member function调用都应该先产生class object,如果不直接存取nonstatic data members,class object是不必要的。

static member function主要就是没有隐含的this指针。

对于nonstatic member function的调用必须通过class object,就是因为nonstatic member function 需要一个隐式的this指针,虽然nonstatic member function 不一定直接存取nonstatic data members。而对于static member function语义上就决定不直接存取nonstatic data members,因为nonstatic data members与class object关联。

基于static member functios语义,可得出以下结论:

a、static member functions不直接存取nonstatic data members。

b、static member functions不能调用nonstatic function members。

c、static member functions不需要通过class object调用,当然可以通过class object 调用。

d、static member functions地址类型不是一个指向class member function的指针,而是一个指向nonmember function的指针,指针类型与类名无关。

 

static member functions的语义表明它几乎等同于nonmember functions,成为面向对象中回调函数的较好选择,比如类中的线程入口函数。

转载地址:http://aqcmb.baihongyu.com/

你可能感兴趣的文章
优先队列
查看>>
redis深度历险学习笔记--基础与应用篇
查看>>
单链表翻转
查看>>
检查表达式中的括号是否匹配
查看>>
一道关于 goroutine 的面试题
查看>>
信号量的使用方法
查看>>
Redis 缓存穿透、击穿、雪崩
查看>>
RabbitMQ(1): docker-compose安装rabbitmq及简单使用Hello World
查看>>
leetcode 525. 连续数组
查看>>
利用序列化实现对象的拷贝
查看>>
is-a,has-a,like-a是什么
查看>>
简单工厂、工厂、抽象工厂的对比
查看>>
J2EE的体系架构——J2EE
查看>>
对于关系型数据库中的索引的基本理解
查看>>
索引,主键,唯一索引,联合索引的区别
查看>>
剪桌腿的最小代价
查看>>
Zookeeper原理架构
查看>>
利用ZooKeeper简单实现分布式锁
查看>>
Lock、ReentrantLock、synchronized
查看>>
Java过滤器与SpringMVC拦截器之间的关系与区别
查看>>