指向类成员函数的指针其实并非指针

 更新时间:2013年08月20日 09:33:53   作者:  
对于指向类成员的指针,必须紧记,指向类成员(非static)的指针并非指针

1、与常规指针不同,一个指向成员的指针并不指向一个具体的内存位置,它指向的是一个类的特定成员,而不是指向特定对象里的特定成员。通常最清晰的做法,是将指向数据成员的指针看作为一个偏移量。

这个偏移量告诉你,一个特定成员的位置距离对象的起点有多少个字节。

2、给定一个成员在类内的偏移量,为了访问位于那个偏移量的数据成员,我们需要该类的一个对象的地址。这时候就需要 .*和->*的操作。pC->*pimC,请求将pC内的地址加上pimC内的偏移量,为的是访问pC所指向的C对象中适当的数据成员。aC.*pimC,请求aC的地址加上pimC中的偏离量,也是为了访问pC所指向的C对象中适当的数据成员。
Ps:
*成员指针解引用操作符(.*)从对象或引用获取成员
*成员指针箭头操作符(->*)通过对象的指针获取成员

3、获取非静态成员函数的地址时,得到的不是一个地址,而是一个指向成员函数的指针。

4、为了对一个指向成员函数的指针进行解引用,需要一个对象或一个指向对象的指针。对于指向数据成员的指针的情形,为了访问该成员,需要将对象的地址和成员的偏移量相加。对于指向成员函数的指针的情形,需要将对象的地址用作this指针的值,进行函数调用,以及作为其他用途。

5、一个指向成员函数的指针的实现自身必须存储一些信息,诸如它所指向的成员函数是虚拟的还是非虚拟的,到哪里支找到的适当的虚函数表指针等等。

6、另外补充一点关于指向内联函数的指针的问题。一个函数指针指向内联函数是合法的。然而,通过函数指针调用内联函数将不会导致内联式的函数调用,因为编译器无法在编译期精确地确定将会调用什么函数。因此在调用点,编译器别无他法,只好生成间接、非内联的函数调用代码。

相关文章

  • ESP32CAM摄像头图像实时传输的配置详解

    ESP32CAM摄像头图像实时传输的配置详解

    这篇文章主要介绍了ESP32CAM摄像头图像实时传输,本文通过截图示例代码相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-05-05
  • C语言数据结构 链表与归并排序实例详解

    C语言数据结构 链表与归并排序实例详解

    这篇文章主要介绍了C语言数据结构 链表与归并排序实例详解的相关资料,需要的朋友可以参考下
    2017-01-01
  • C++标准C函数在各平台编译结果都相同

    C++标准C函数在各平台编译结果都相同

    今天小编就为大家分享一篇关于C++标准C函数在各平台编译结果都相同,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-12-12
  • C++如何在变量前面加#

    C++如何在变量前面加#

    这篇文章主要介绍了C++如何在变量前面加#问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • C++小游戏BrickHit实例代码

    C++小游戏BrickHit实例代码

    本文通过实例代码给大家介绍了C++小游戏BrickHit的相关资料,需要的朋友可以参考下
    2018-02-02
  • C++编程中队内联函数的理解和使用

    C++编程中队内联函数的理解和使用

    这篇文章主要介绍了C++编程中队内联函数的理解和使用,简单举例讲解了inline关键字引出的内联函数的相关知识,需要的朋友可以参考下
    2016-01-01
  • C语言删除输入字符串中的空格示例代码

    C语言删除输入字符串中的空格示例代码

    最近工作中遇到了需求,要删除字符串中的所有空格,就要筛选出空格字符,这篇文章主要给大家介绍了关于利用C语言删除输入字符串中的空格的相关资料,需要的朋友可以参考下
    2022-12-12
  • C语言实现魔方阵算法(幻方阵 奇魔方 单偶魔方实现)

    C语言实现魔方阵算法(幻方阵 奇魔方 单偶魔方实现)

    魔方阵是指由1,2,3……n2填充的,每一行、每一列、对角线之和均相等的方阵,阶数n = 3,4,5…。魔方阵也称为幻方阵,看下面的实现方法吧
    2013-11-11
  • C语言使用函数实现字符串部分复制问题

    C语言使用函数实现字符串部分复制问题

    这篇文章主要介绍了C语言使用函数实现字符串部分复制问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • Visual Studio中scanf函数报错的几种解决方法

    Visual Studio中scanf函数报错的几种解决方法

    本文主要介绍了Visual Studio中scanf函数报错的几种解决方法,文中通过图文示例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-03-03

最新评论