создание экземпляра структуры с помощью «struct» ключевое слово

Предположим, я объявляю новый тип структуры C ++:

struct my_struct {
int a;
int b;
};

Могу ли я создать новый экземпляр этого типа структуры:

my_struct foo;

или же

struct my_struct foo;

Если оба работают, есть ли разница?

4

Решение

Да, вы можете использовать любой метод. Разница в том, что эта форма:

my_struct foo;

Недопустимо в C, поэтому вы должны использовать эту форму:

struct my_struct foo;

Который поддерживается в C ++ для обратной совместимости с C.

14

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

Оба работают. Основная причина, по которой вторая работает — это совместимость с C: в C первая не работает. В следствии, structс, как правило, typedefEd в C и есть два разных вида имен для structс и typedefs.

2

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector