社区
C++ 语言
帖子详情
关于类成员函数地址!
hustdaiwei
2006-09-04 05:53:49
假设有一个类
class C1
{
public:
C1()
{
printf("In C1\n");
DispVFT((DWORD*)this);
}
virtual void F1(){}
};
请问C1::F1获得的使函数F1的地址吗?
...全文
294
5
打赏
收藏
关于类成员函数地址!
假设有一个类 class C1 { public: C1() { printf("In C1\n"); DispVFT((DWORD*)this); } virtual void F1(){} }; 请问C1::F1获得的使函数F1的地址吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
houdy
2006-09-04
打赏
举报
回复
class myClass {
public:
static void sFunction();
void mFunction();
virtual void vFunction();
}
对于这个类:
1.静态函数sFunction(). 静态函数和普通的全局函数相似,只不过被封装在myClass这个类域内,它的指针类型/赋值/调用分别为:
typedef void (myClass::*StaticFunctionPTR)();
StaticFunctionPTR pStaticFunc = &myClass::sFunction;
pStaticFunc();
2.普通成员函数.普通成员函数也被封装在myClass类域内,同时还有隐式的参数this.所以它的指针类型/赋值/调用分别为:
typedef void (myClass::*MemberFunctionPTR)();
MemberFunctionPTR pMemberFunc = &myClass::mFunction;
myClass myObj;
(myObj.*pMemberFunc)();
3.虚函数.虚函数不能直接取地址,因为虚函数地址存放在虚表中。我们要先得到虚函数表的地址,然后在索引到具体的虚函数。
希望以上的分析能对你有所帮助:)
wf520pb
2006-09-04
打赏
举报
回复
hustdaiwei() ( ) 信誉:100 Blog 2006-09-04 18:07:00 得分: 0
试了一下,fnF1和C1::F1的地址好像不一样啊。
----------------------------------------------------------------
变量地址当然不一样,值是一样的嘛。
OOPhaisky
2006-09-04
打赏
举报
回复
不是,应该是一个类似于结构体的东西,具体的根编译器实现有关,楼主可以看看《inside the c++ object model》,里面有详细介绍。
hustdaiwei
2006-09-04
打赏
举报
回复
class C1
{
public:
C1()
{
printf("In C1\n");
// DispVFT((DWORD*)this);
}
void F1(){int a = 1;}
};
void main()
{
C1 c1;
typedef void (C1::*pF1)();
pF1 fnF1 = &C1::F1;
}
试了一下,fnF1和C1::F1的地址好像不一样啊。
hustdaiwei
2006-09-04
打赏
举报
回复
只有这么多分了!
PowerBI系列之统计
类
DAX函数专题
常用统计指标概念的复习(平均数、分位数和方差、标准差) 验证DAX中的方差函数VAR DAX平均数vs 分位数 DAX平均数vs 方差 DAX制作正态分布曲线 DAX计算正态分布概率 DAX实现二项分布 DAX泊松分布概率和曲线 DAX指数...
类
成员函数
指针
类
被需要的时候会被载入内存,当然
类
成员函数
也会被载入内存,所以
类
的
成员函数
是有真正的内存
地址
的,这个
地址
一般跟具体的
类
对象没有什么关系
类
成员函数
指针,通俗的讲,是一个指针,指向
类
成员函数
使用方法如下 示例 ...
c++
类
成员函数
地址
。
类
成员函数
类
型声明和变量定义c++
成员函数
地址
声明方式和定义如下:
类
型声明:typedef void (MyClass::*pFunType)(); 或using pFunType2 = void (MyClass::*)();变量定义:void (MyClass::*p1)();例子:class ...
类
成员函数
的
地址
如果是static
类
型的
类
成员函数
,可以输出其
地址
,假如是
类
a;
成员函数
是staticshuchu();则可以这样输出它的
地址
。cout 一个
类
在不继承(或者单继承)、多继承、virtual继承、未定义这四种情况下,其“
成员函数
指针”...
获取
类
成员函数
地址
及获取函数
地址
首先我们定义一个
类
Ctest,
类
里面包含三个不同形式的
成员函数
,静态
成员函数
statFunc()、动态
成员函数
dynFunc()和虚拟函数virtFunc()。在main函数中我们利用cout标准输出流分别输出这三个函数的
地址
,程序如下所示:...
C++ 语言
64,648
社区成员
250,476
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章