指針訪問類
發布時間: 2022-11-08 09:56:15
① 採用指向函數的指針訪問類的成員函數的格式是如何的
這需要使用兩個特別指定的操作符:
::*用來定義指向類成員函數的指針
->*用來調用函數
看代碼:
#include<cstdio>
classMyPtrTestClass
{
public:
MyPtrTestClass()
{
m_iVal=0;//初始為零
}
//定義指向類的成員函數指針別名
typedefvoid(MyPtrTestClass::*Action)();
//參數為指向類的成員函數的指針
voidRepeat(ActionactOp,intiTimes)
{
for(inti=0;i<iTimes;++i)
{
(this->*actOp)();//調用指定的函數
}
}
voidAddVal()
{
++m_iVal;
}
voidSubVal()
{
--m_iVal;
}
voidShowVal()
{
printf("Thevalueis:%d. ",m_iVal);
}
intm_iVal;
};
intmain(intargc,char*argv[])
{
MyPtrTestClassmyClass;
//調用Addval成員函數
myClass.Repeat(&MyPtrTestClass::AddVal,20);
myClass.ShowVal();
//調用SubVal成員函數
myClass.Repeat(&MyPtrTestClass::SubVal,100);
myClass.ShowVal();
return0;
}
測試截圖:
熱點內容