Структуры и классы в C ++ - PullRequest
       13

Структуры и классы в C ++

1 голос
/ 08 сентября 2011

В c ++, если вы создаете структуру или класс, подобный этому

struct foo {

}

Должны ли вы использовать описатель struct или class для создания другого, как вы делаете в c, если нет, то почему? Когда было бы целесообразно использовать его в C ++

Пример

struct foo a;

Спасибо: -)

Ответы [ 4 ]

3 голосов
/ 08 сентября 2011

struct не требуется.В C ++ единственная разница между struct и class состоит в том, что в struct члены имеют значение public по умолчанию, а в class они private по умолчанию.

3 голосов
/ 08 сентября 2011

Нет, ключевое слово struct не требуется при создании экземпляра в C ++. Кстати, определение структуры должно заканчиваться ;

2 голосов
/ 08 сентября 2011

Можно, но не обязательно.И вам лучше этого не делать, это правильный стиль C ++, если вы не собираетесь смешивать свой код с чистым C. Причина в том, что разработчики C ++ думали, что концепция тегов в C была излишне сложной.Я склонен согласиться.

1 голос
/ 08 сентября 2011

В C вы можете избежать этого, используя typedef. В C ++ тип создается автоматически, поэтому нет необходимости явно указывать его.

Синтаксис C, чтобы сделать его похожим:

typedef struct {
....
} foo;

Тогда вы можете использовать его, сказав foo x;

...