指向const成员变量的指针

rel*_*eht 2 c++

我想知道指向常量成员变量的指针的语法是什么.

我知道指向非const成员函数的指针和指向const成员函数的指针是明显不同的类型,即以下是两种不同的类型:

typedef void (Foo::*Bar)(void);
typedef void (Foo::*ConstBar)(void) const;
Run Code Online (Sandbox Code Playgroud)

我想知道是否可以说非指向const和const成员变量的指针,即以下两种不同的类型,如果是这样,后者的语法是什么:

typedef int (Foo::*var);
typedef int (Foo::*constVar) const; // Not the correct syntax.
Run Code Online (Sandbox Code Playgroud)

谢谢.

Jam*_*lis 6

指向成员的指针类型需要与成员的类型匹配:

typedef       int (Foo::*var);  // pointer to a data member of type 'int'
typedef const int (Foo::*cvar); // pointer to a data member of type 'const int'
Run Code Online (Sandbox Code Playgroud)

成员函数的const限定是其类型的一部分,就像返回类型是其类型的一部分一样.