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; // 更好...

} // 主要()

成员指针的语法需要一些额外的语法元素:

  • 要定义指针的类型,您需要提及基本类型,以及它在类内部的事实:int Class::*ptr;。

  • 如果您有一个类或引用,并想将其与指向成员的指针一起使用,则需要使用.*运算符(类似于.运算符)。

  • 如果您有一个指向类的指针,并想与一个指向成员的指针一起使用,则需要使用->*运算符(类似于->运算符)。

以上是 C++ 指向成员变量的指针 的全部内容, 来源链接: utcz.com/z/326223.html

回到顶部