использование предварительных объявлений вместо void * C ++ - PullRequest
0 голосов
/ 01 июля 2018

Можно ли использовать форвардные объявления вместо void * или предпочтительнее использовать typedef ?

Я использую определенный класс в своем API. для клиентов, которые его используют, класс представлен void*, поэтому клиентам не нужно будет использовать заголовочные файлы.

Какой из этих вариантов лучше?

class A;
class b
{
    A* simple;
};

или

typedef void* A;
class b
{
    A simple;
};

1 Ответ

0 голосов
/ 01 июля 2018

Вы определенно можете использовать что-то вроде:

class A;

class B {
    A* the_a;
}

вместо

class B {
    void* the_a;
}

в вашем коде C ++, и первый код лучше, чем второй. Тем не менее, не спешите использовать сырые указатели, если только вам это не нужно.

Наконец, я настоятельно рекомендую вам избегать типов указателей typedef, используя имена, которые не ясно указывают на тип указателя, так как это сбивает с толку (и бесполезно).

...