У меня есть простая структура, и я хочу указатель на член 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
если я не объявляю struct abc как определение типа (typedef), я не могу его использовать .. как получится?
Вы можете, и вам не нужно struct
ключевое слово, ни typedef
, Просто сделай это:
char abc::*ptt1 = &abc::c;
Других решений пока нет …