C++ 指向成员变量的指针
示例
要访问的成员class,您需要有一个指向特定实例的“句柄”,既可以是实例本身,也可以是指向它的指针或引用。给定一个class实例,如果语法正确,则可以使用指向成员的指针指向其各个成员!当然,必须将指针声明为与您指向的指针相同的类型。
class Class { public: int x, y, z; char m, n, o; }; //类 int x; //全局变量 int main() { Class c; //需要一个Class实例来玩 Class *p = &c; //需要一个Class指针才能玩 int *p_i; //指向int的指针 p_i = &x; //现在指向x p_i = &c.x; //现在指向c的x int Class::*p_C_i; //指向int的指针 within Class p_C_i = &Class::x; //指向任何类别中的x int i = c.*p_C_i; //使用p_c_i从c的实例中获取x p_C_i = &Class::y; //指向任何类别中的y i = c.*p_C_i; //使用p_c_i从c的实例中获取y p_C_i = &Class::m; //错误!m是一个字符,不是整数! char Class::*p_C_c = &Class::m; //更好... } //主要()
成员指针的语法需要一些额外的语法元素:
要定义指针的类型,您需要提及基本类型,以及它在类内部的事实:intClass::*ptr;。
如果您有一个类或引用,并想将其与指向成员的指针一起使用,则需要使用.*运算符(类似于.运算符)。
如果您有一个指向类的指针,并想与一个指向成员的指针一起使用,则需要使用->*运算符(类似于->运算符)。