【C++】学习笔记草稿版系列9(指向类成员的指针)

xiaoxiao2021-02-28  57

类数据成员 1. 数据成员 2. 函数成员

定义

<数据类型><类名>::*<指针名>

赋值&初始化

<数据类型><类名>::*<指针名>[=&<类名>::<非静态数据成员>] //和类发生关系,整个过程没有和对象发生关系

指向类成员的指针 类名::成员名 类名::成员函数名

// 类 成员类型 类名::*指针名 = &类名::成员名; 函数返回类类型 (类名::*函数指针名)(参数列表) = &类名::成员函数名; // 对象 // .* ->* 对象.*数据成员指针 对象指针->*数据成员指针 (对象.*成员函数指针)() (对象指针->*成员函数指针)() class Widget { public: Widget() { pa[0] = &f; pa[1] = &g; pa[2] = &i; pa[3] = &j; } void select(int idx) { (this->*pa[idx])(); } private: void f(){cout<<"void f()"<<endl;} void g(){cout<<"void g()"<<endl;} void i(){cout<<"void i()"<<endl;} void j(){cout<<"void j()"<<endl;} enum{cnt = 4}; void(Widget::f*pa[cnt])() = {f, g, i, j}; } // 不同的平台对Widget::f的需要也不同 int main() { Widge w; w.select(int idx); }
转载请注明原文地址: https://www.6miu.com/read-2631182.html

最新回复(0)