C++;带有奇怪范围解析运算符的typedef 我必须导出一些C++代码,发现这个奇怪的TyPufF: typedef uint32_t SomeClassName::* ptr;

C++;带有奇怪范围解析运算符的typedef 我必须导出一些C++代码,发现这个奇怪的TyPufF: typedef uint32_t SomeClassName::* ptr;,c++,visual-c++,scope,standards,typedef,C++,Visual C++,Scope,Standards,Typedef,目标编译器是MSVC++。据我所知,这只是为名为ptr的uint32\u t*创建了一个别名。“代码> > SoeCaseNo::/COD>没有什么有用的东西,应该被兼容C++编译器当作一个错误。我是对还是错 另外,我发现问题是这样的,这可能回答了这个问题,但我不确定。这是一个指向成员的指针。具体来说,ptr类型的变量可以指向SomeClassName的任何uint32\t数据成员。它可以这样使用: struct Foo { int a; int b; float c;

目标编译器是MSVC++。据我所知,这只是为名为
ptr
uint32\u t*
创建了一个别名。“代码> > SoeCaseNo::/COD>没有什么有用的东西,应该被兼容C++编译器当作一个错误。我是对还是错


另外,我发现问题是这样的,这可能回答了这个问题,但我不确定。

这是一个指向成员的指针。具体来说,
ptr
类型的变量可以指向
SomeClassName
的任何
uint32\t
数据成员。它可以这样使用:

struct Foo {
    int a;
    int b;
    float c;
};

Foo foo;
int Foo::* ptr;

ptr = &Foo::a;
foo.*ptr = 10; //Set foo.a to 10

ptr = &Foo::b;
foo.*ptr = 15; //Set foo.b to 15

//ptr = &Foo::c; //Won't compile

这可能是指向成员的指针吗?我对语法不太熟悉,它让人困惑