如何使用C++成员函数指针
2021/4/17 20:55:19
本文主要是介绍如何使用C++成员函数指针,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
有时候,一个类当中若干相同声明的函数,希望放到一个数组当中,批量执行,那么就可以定义一个vector<T> T是成员函数指针类型。 成员函数指针和static指针声明有些区别,下面是实际的例子 设一个BLL类,又proc1 proc2 proc3 3个成员函数,初始化的时候,都压入m_Procs数组,调用Do方法的时候,依次支持数组中压入的成员函数。 #include <vector> using namespace std; class BLL { private: typedef void (BLL::*p_proc)(); vector<p_proc> m_Procs; private: void proc1() { // 第一步 MessageBox(NULL,"第一步","提示",MB_OK); } void proc2() { // 第二步 MessageBox(NULL,"第二步","提示",MB_OK); } void proc3() { // 第三步 MessageBox(NULL,"第三步","提示",MB_OK); } public: BLL() { m_Procs.push_back(&BLL::proc1); m_Procs.push_back(&BLL::proc2); m_Procs.push_back(&BLL::proc3); } void Do() { for (size_t i = 0 ; i < m_Procs.size() ;i++) { (this->*m_Procs[i])(); } } }; __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::btn1Click(TObject *Sender) { BLL bll = BLL(); bll.Do(); } //---------------------------------------------------------------------------
这篇关于如何使用C++成员函数指针的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-04安装 VPrix Desktop 的系统要求-icode9专业技术文章分享
- 2024-05-01巧用 TiCDC Syncpoint 构建银行实时交易和准实时计算一体化架构
- 2024-05-01银行核心背后的落地工程体系丨Oracle - TiDB 数据迁移详解
- 2024-04-26高性能表格工具VTable总体构成-icode9专业技术文章分享
- 2024-04-16软路由代理问题, tg 无法代理问题-icode9专业技术文章分享
- 2024-04-16程序猿用什么锅-icode9专业技术文章分享
- 2024-04-16自建 NAS 的方案-icode9专业技术文章分享
- 2024-04-14ansible 在远程主机上执行脚本,并传入参数-icode9专业技术文章分享
- 2024-04-14ansible 在远程主机上执行脚本,并传入参数, 加上remote_src: yes 配置-icode9专业技术文章分享
- 2024-04-14ansible 检测远程主机的8080端口,如果关闭,则echo 进程已关闭-icode9专业技术文章分享