获取成员函数地址及获取函数地址
来源:互联网 发布:skycopy是什么软件 编辑:程序博客网 时间:2024/06/16 02:35
首先我们定义一个类Ctest,类里面包含三个不同形式的成员函数,静态成员函数statFunc()、动态成员函数dynFunc()和虚拟函数virtFunc()。在main函数中我们利用cout标准输出流分别输出这三个函数的地址,程序如下所示:
#include <iostream>
#include <stdio.h>
using namespace std;
class Ctest
{
public:
};
void main()
{
}
屏幕输出结果如下图所示:
从图中可以看出静态函数的地址显示正常,是一个32位地址值,但是动态函数和虚拟函数的地址都输出1,明显不是地址值。
从图中可以看书,通过使用printf输出,我们得到了动态函数的地址。那么对于虚拟函数,我们同样采用printf来输出,是不是就可以了呢,我们将cout << "address of Ctest::virtFunc:" << &Ctest::virtFunc << endl;
改为printf( "address of Ctest::virtFunc :X\n", &Ctest::virtFunc);运行的输出如下:
由上图可以看出同样可以得出一个准地址值。
为了验证取到的地址是否正确,我们可以分别定义三个成员函数指针来保存获得的函数地址,然后通过调用函数指针来看输出是否正确,就可以判断取到的地址是否正确了。以下是验证的代码:
#include <iostream>
#include <stdio.h>
using namespace std;
class Ctest
{
public:
};
void main()
{
}
代码运行之后显示如下,从输出内容可见我们成功调用了对应的成员函数:
- 获取成员函数地址及获取函数地址
- 获取成员函数地址及获取函数地址
- 获取成员函数地址及获取函数地址
- 获取成员函数地址及获取函数地址
- 【C/C++】类成员函数地址的获取及使用方法
- 获取成员函数地址的方法
- 获取成员函数地址3种方法
- 用联合体获取类成员函数地址
- 获取C++类成员虚函数地址
- 获取ip地址函数
- 获取ip地址函数
- 获取IP地址函数
- android 获取函数地址
- C++ 获取类成员函数地址方法 浅析
- 获取类成员函数地址和调用的方法
- C++获取函数返回地址
- 获取IP地址的函数
- C函数获取IP地址
- 6_8_5在order结构体中添加一个函数.该结构体返回一个格式化的字符串,以合适的值替换用尖括号扩起来的条目
- 【CodeForce】Codeforces Round #142 (Div. 2) A B C
- size_t & size_type小总结
- 数组中出现次数超过一半的数字
- 只能实例化一次的类 (Singleton)
- 获取成员函数地址及获取函数地址
- initramfs文件系统的制作及yaffs2根文件系统制作(busybox-1.20.2)
- Ubuntu系统下安装中文输入法
- 装有ubuntu的笔记本关闭/开启触摸屏
- !!!Chapter 8 The IO Library
- 一个小圆沿着大圆圆周滚动,求小圆转动周数
- JavaScript类库/组件/框架封装的总体结构
- qsort 源代码
- Codeforces Contest Rules