"); //-->
利用周末时间,研究了一下C++中的,指向成员函数指针
定义了两个类一个base, 另一个是derive
class base
{
public:
base(){;}
~base(){;}
virtual void test(void)
{
printf("call test\n");
}
};
class derive
: public base
{
public:
derive(){;}
~derive(){;}
void test(void)
{
printf("call der_class!\n");
}
};
typedef void (base::*pM)(void);
typedef void (derive::*pMM)(void);
调用通过下面主函数:
int main()
{
derive der;
pM pm;
pMM pmm;
pm = &base::test;
pmm = &derive::test;
base *PT = &der;
(PT->*pm)();
(der.*pmm)();
getchar();
return(1);
}
//实际返回的结果都是调用了derive类的test函数。
为什么会这样? (PT->*pm)();因为pm所指的test是虚函数,所以
真正调用的是PT指向的test(),也就是derive::test().
如果去掉base::test()函数的virutal,实际调用就会是base::test()了。
专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
WPS Office 2007 个人版(2007.27419.0)
360安全卫士V3.7标准版
博通公司CCBN2011主要展品介绍
Trace32 在线培训
半导体行业下行周期预测
市电电压双向越限报警保护器电路
2026年5月PCB厂家推荐:五大排名榜产品评测应对高功率散热痛点
用AI监控芯片与系统中的监测面板
依托先进电力电子技术,打造面向未来的汽车产业生态
高速数据传输下连接器等的测试和分析
用FPGA实现FFT算法
创新推动了电压基准的技术发展水平
SARS冲击亚太信息市场将损失十亿
FAN5400电池充电器IC
雅虎天盾1.0
从构建软件到构建学习系统
30而立?
在AI快速迭代浪潮中进行芯片设计
家用瓦斯报警器电路
摩尔斯微电子选定Gateworks作为首个全球设计合作伙伴
红外线探测报警器电路
能自动点火的煤气熄火报警器电路
恭喜新版开张,提倡Open Hardware
电子产品在对伊作战中的重要作用
精密高压供电标杆,赋能高端检测与科研设备 ——HO1-P(N)xxxxH系列
51的看门狗电路
GSM系统(GSM900/DCS1800)系统原理
「小体积」撬动「高效率」:POL电源精准赋能老化测试
千千静听(5.0.1)
从小众架构走向战略基石的RISC‑V