C структура и структура C++

Мог кто-либо говорить мне, что является основным различием между структурами C & C ++.

42
задан Vijay 11 February 2010 в 06:32
поделиться

4 ответа

В C++ struct и class - это одно и то же, за исключением того, что struct по умолчанию имеет public видимость, а class по умолчанию имеет private видимость.

В Си имена struct находятся в собственном пространстве имен, поэтому если у вас есть struct Foo {};, вам нужно написать struct Foo foo;, чтобы создать переменную этого типа, тогда как в C++ вы можете написать просто Foo foo;, хотя допускается и стиль Си. Программисты на языке Си обычно используют typedef struct {} Foo;, чтобы разрешить синтаксис C++ для определения переменных.

Язык программирования C также не поддерживает ограничения видимости, функции-члены и наследование.

68
ответ дан 26 November 2019 в 23:37
поделиться

В C++ структуры ведут себя как классы, допуская методы, конструкторы, деструкторы и т.д...

Основное различие между классами и структурами C++ заключается в том, что все, что находится внутри структур, по умолчанию является public, в то время как все, что находится внутри классов, по умолчанию является private. (т.е. ничто внешнее не может получить к ним прямой доступ)

11
ответ дан 26 November 2019 в 23:37
поделиться

Структуры C больше похожи на определение составной структуры данных.

Структуры C ++ можно рассматривать как класс, но область видимости всех переменных-членов по умолчанию установлена ​​на public.

2
ответ дан 26 November 2019 в 23:37
поделиться

Там вы идете: http://html2haml.heroku.com/

EDIT: Moved to https://html2haml.herokuapp.com/

-121--1093562-
#include <stdio.h>`

int main(int argc, char **argv)
{
FILE *inputFiles[argc - 1];
int i;
for (i = 1; i < argc; i++)
{
    printf("%s\n",argv[i]);
    inputFiles[i] = fopen(argv[i], "r");
    printf("%p\n",inputFiles[i]);
}
  return 0;
}

Он печатает различные указатели для каждого указателя файла вместе с именами. Позволяет ОС правильно закрывать файлы:)

-121--4859528-

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

3
ответ дан 26 November 2019 в 23:37
поделиться