我有一个简单的结构,我想要一个指向成员的指针c。我正在使用MSVC2012,如果我没有将struct abc声明为类型定义(typedef),我就不能使用它..怎么来的?
struct abc
{
int a;
int b;
char c;
};
char (struct abc)::*ptt1 = &(struct abc)::c; // Error: error C2144: syntax error : 'abc' should be preceded by ')'
typedef struct abc;
char abc::*ptt1 = &abc::c; // Compiles just fine
答案 0 :(得分:7)
如果我没有将struct abc声明为类型定义(typedef),我就不能使用它..怎么来的?
您可以,而且不需要struct
关键字,也不需要typedef
。就这样做:
char abc::*ptt1 = &abc::c;