对成员变量的指针正确使用语法

时间:2018-11-12 22:43:43

标签: c++ pointer-to-member

  struct MyStruct {
    typedef int MyStruct::*Ptr;  // my pointer-to-member type
    int foo, bar;
  };

此代码有效,但是我想将其更新为现代风格,并用typedef代替using。使用正确的语法是什么?我尝试了很多选择,但遇到了麻烦。我唯一能找到的例子是指向成员函数 的指针。

2 个答案:

答案 0 :(得分:6)

using语法只是移动标识符位置,一般情况是

typedef ............. foo ..............;

可以更改为

using foo = .............  .............;

您的情况也不例外;该代码可能是using Ptr = int MyStruct::*;

答案 1 :(得分:2)

using Ptr = int (MyStruct::*);

通常,(MyStruct::*)会出现在非成员指针中*出现的位置。