структура без typedef — нельзя использовать в указателе на член

У меня есть простая структура, и я хочу указатель на член 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

1

Решение

если я не объявляю struct abc как определение типа (typedef), я не могу его использовать .. как получится?

Вы можете, и вам не нужно struct ключевое слово, ни typedef, Просто сделай это:

char abc::*ptt1 = &abc::c;
7

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]