1. 程式人生 > >指向類成員函式指標 (對外建立一個測試函式介面測試類中私有函式介面)

指向類成員函式指標 (對外建立一個測試函式介面測試類中私有函式介面)

程式碼單元測試時候,怎樣讓外部測試自己私有函式介面了,

此處對外提供一個公有的函式測試介面,測試其私有介面函式 ,此處用指向類成員函式指標來實現

例子如下:  

#include<QCoreApplication>
#include<iostream>
usingnamespacestd;
classWidget
{
public:
Widget()
{
pa[0]=&f;
pa[1]=&g;
pa[2]=&h;
pa[3]=&i;
}
    // 對外測試類
voidtest(intidx)
{
(this->*pa[idx])();
}
private:
voidf(){cout<<"void::f()"<<endl;}
voidg(){cout<<"void::g()"<<endl;}
voidh(){cout<<"void::h()"<<endl;}
voidi(){cout<<"void::i()"<<endl;}
enum{cnt=4};
void(Widget::*pa[cnt])()={f,g,h,i}; //指向類成員函式的指標陣列
};
intmain(intargc,char*argv[])
{
QCoreApplication
a(argc,argv);
Widgetw;
w.test(0);
w.test(1);
w.test(2);
w.test(3);
returna.exec();
}