Разница между C и C ++?

6 Ответы


  • Основное различие между C и C ++ состоит в том, что C является процедурным языком программирования и не поддерживает классы и объекты, в то время как C ++ представляет собой комбинацию как процедурного, так и объектно-ориентированного языка программирования; поэтому C ++ можно назвать гибридным языком.

  • C ++ является многопарадигмальным (не чистым ООП, поддерживает как процедурный, так и объектно-ориентированный), тогда как C следует программированию в процедурном стиле.
      В C безопасность данных меньше, но в C ++ вы можете использовать модификаторы для членов вашего класса, чтобы сделать их недоступными извне.
      C следует нисходящему подходу (решение создается поэтапно, как будто каждый шаг обрабатывается в деталях по мере продвижения), но C ++ следует восходящему подходу (где базовые элементы устанавливаются первыми и связаны для создания сложных решений) .
      C ++ поддерживает перегрузку функций, а C ее не поддерживает.
      C ++ позволяет использовать функции в структурах, но C этого не допускает.
      C ++ поддерживает ссылочные переменные (две переменные могут указывать на одно и то же место в памяти). C не поддерживает это.
      C не имеет встроенной инфраструктуры обработки исключений, хотя мы можем эмулировать ее с помощью другого механизма. C ++ напрямую поддерживает обработку исключений, что упрощает жизнь разработчикам.

    для информации об этом посещении

  • C - это процедурный язык программирования, который не поддерживает классы и объекты.

    C ++ представляет собой сочетание процедурного и объектно-ориентированного языка программирования. C ++ можно назвать гибридным языком.

  • C ++ - это гораздо больше, чем c с классами. Внутри C ++ есть много других концепций, таких как шаблоны, перегрузка функций и операторов, исключения и многие другие, уже упомянутые здесь. Это делает C ++ очень мощным и гибким, но при этом трудным для изучения. Дело не в том, что отдельные концепции трудны для понимания, а в их сумме и том, как они взаимодействуют вместе. Взгляните на boost, чтобы увидеть, что все можно делать с C ++. И я предполагаю, что потребовалось время, чтобы понять, что происходит под капотом, что очень ясно в случае C.

  • C ++ является многопарадигмальным (не чистым ООП, поддерживает как процедурный, так и объектно-ориентированный), тогда как C следует программированию в процедурном стиле.
      В C безопасность данных меньше, но в C ++ вы можете использовать модификаторы для членов вашего класса, чтобы сделать их недоступными извне.
      C следует нисходящему подходу (решение создается поэтапно, как будто каждый шаг обрабатывается в деталях по мере продвижения), но C ++ следует восходящему подходу (где базовые элементы устанавливаются первыми и связаны для создания сложных решений) .
      C ++ поддерживает перегрузку функций, а C ее не поддерживает.


      C ++ позволяет использовать функции в структурах, но C этого не допускает.
      C ++ поддерживает ссылочные переменные (две переменные могут указывать на одно и то же место в памяти). C не поддерживает это.
      C не имеет встроенной инфраструктуры обработки исключений, хотя мы можем эмулировать ее с помощью другого механизма. C ++ напрямую поддерживает обработку исключений, что упрощает жизнь разработчикам.
    для получения дополнительной информации посетите этот сайт

  • В C ++ структура и класс - это одно и то же, за исключением того, что для структуры по умолчанию используется общедоступная видимость, а для класса по умолчанию - частная видимость.
    Некоторые важные различия между структурами C и C ++:

    1. Функции-члены внутри структуры : структуры в C не могут иметь функции-члены внутри структуры, но структуры в C ++ могут иметь функции-члены вместе с элементами данных.
    2. Прямая инициализация: мы не можем напрямую инициализировать элементы данных структуры в C, но мы можем сделать это в C ++.

      • C
      • C ++
      // Программа на C для демонстрации того, что прямая
      // инициализация члена невозможна в C
      #include <stdio.h>

      struct Record {
          int x = 7;
      };

      // Программа-драйвер
      int main ()
      {
          struct Record s;
          printf ("% d", sx);
          возврат 0;
      }
      / * Вывод: Ошибка компилятора
        6: 8: Ошибка: Ожидается ':', ',', ';', '}' или
        '__attribute__' перед '=' token
        int x = 7;
              ^
        В функции main: * /


      Выход:

      7
    3. Использование ключевого слова struct: в C нам нужно использовать struct для объявления структурной переменной. В C ++ struct не требуется. Например, пусть будет структура для записи. В C мы должны использовать «struct Record» для переменных Record. В C ++ нам не нужно использовать структуру, и можно использовать только «Запись».
    4. Статические члены: структуры C не могут иметь статических членов, но разрешены в C ++.

      • C
      • C ++
      // Программа на C со структурой static member
      struct Record {
          static int x;
      };

      // Программа-драйвер
      int main ()
      {
          return 0;
      }
      / * 6: 5: Ошибка: ожидаемый список спецификаторов-квалификаторов
        перед 'static'
          static int x;
          ^ * /


      Это вызовет ошибку в C, но не приведет к ошибке в C ++.
    5. Создание конструктора в структуре : у структур в C не может быть конструктора внутри структуры, но у структур в C ++ может быть создание конструктора.

      • C
      • C ++
      // Программа на языке C для демонстрации недопустимости использования конструктора
      #include <stdio.h>

      struct Student {
          int roll;
          Студент (int x)
          {
              roll = x;
          }
      };

      // Программа драйвера
      int main ()
      {
          struct Student s (2);
          printf ("% d", sx);
          возврат 0;
      }
      / * Вывод: Ошибка компилятора
        [Ошибка] ожидаемый список спецификаторов спецификаторов
          перед
        ожидаемыми спецификаторами объявления 'Student' [Ошибка] или
        '...' перед числовой константой
        [Ошибка] не объявлен (сначала используйте
        5555555555 в этой функции)
        В функции 'main': * /


      Выход: 2
    6. Оператор sizeof: этот оператор сгенерирует 0 для пустой структуры в C, тогда как 1 для пустой структуры в C ++. // Программа на C для иллюстрации пустой структуры
      #include <stdio.h>

      // пустая структура
      struct Record {
      };

      // Программа-драйвер
      int main ()
      {
          struct Record s;
          printf ("% dn", sizeof (s));
          возврат 0;
      }

      Вывод в C:



      0

      Вывод на C ++:

      1
    7. Скрытие данных: структуры C не допускают концепцию сокрытия данных, но разрешены в C ++, поскольку C ++ является объектно-ориентированным языком, а C - нет.
    8. Модификаторы доступа: структуры C не имеют модификаторов доступа, поскольку эти модификаторы не поддерживаются языком. Структуры C ++ могут иметь эту концепцию, поскольку она встроена в язык.

    Fileyogi

Напишите свой ответ

Ваш ответ появится после модерации