Typedef C ++, не удалось разрешить его значение - PullRequest
3 голосов
/ 22 апреля 2010

Я прочитал эту строку typedef в книге C ++, но не смог понять ее значение:

typedef Shape* (*CreateShapeCallBack)();

Теперь, CreateShapeCallBack означает что, любая идея? Спасибо.

Ответы [ 4 ]

8 голосов
/ 22 апреля 2010

Это тип указателя на функцию, которая возвращает указатель на Shape и не принимает параметров. Вы можете использовать это так:

Shape * Func() {
   // do stuff - return Shape pointer
}

...
CreateShapeCallBack p = Func;
2 голосов
/ 22 апреля 2010

Указатель на функцию, возвращающую указатель на экземпляр Shape (то есть Shape*) и принимающий void в качестве параметра - без параметров.

Сравните это, например, с typedef int (*function_pointer)(double);- это указатель на функцию, которая принимает double в качестве параметра и возвращает int ...

1 голос
/ 22 апреля 2010
returntype (*functionpointer)(parameters, ...)

- указатель на функцию в c ++

1 голос
/ 22 апреля 2010

Определяет CreateCallBack как указатель на функцию. Функция не имеет аргументов и возвращает указатель Shape.

...