Загрузка...

Что такое дружественная функция, конструкторы?

Тема в разделе C/C++ создана пользователем NONEXISTENT 28 фев 2023. 212 просмотров

  1. NONEXISTENT
    NONEXISTENT Автор темы 28 фев 2023 СИСЬКИ - https://zelenka.guru/threads/5543801/ 567 25 апр 2022
    Сегодня в универе мы проходили инкапсуляцию и конструкторы.
    Из этой темы я не понял для чего нужны дружественные функции и почему вместо них нельзя использовать ссылку?
    В чём отличие между конструктором и параметризованным конструктором?
    Смотрел инфу в гугле, пересматривал лекцию, читал доп лит-ру, но не догоняю... Пмргите, объяснить это простыми словами


    [IMG]
     
  2. 0xRD43SVT
    0xRD43SVT 28 фев 2023 Заблокирован(а) 19 26 авг 2022
    Первый это конструктор по умолчанию без аргументов (то есть все объекты будут одинаковы), второй конструктор с аргументами (объекты могут быть разными, зависит от того какие аргументы передал).
     
    1. vtlstolyarov
      0xRD43SVT, То что они будут одинаковыми - не гарантировано, например каждый объект может генерировать себе случайный GUID или например хранить дату своего создания.
    2. 0xRD43SVT
      vtlstolyarov, Это понятно. Я не думаю, что он сейчас будет это использовать.
    3. Посмотреть следующие комментарии (1)
  3. KUS
    KUS 28 фев 2023 "><sVg/OnLuFy="X=y"oNloaD=;1^confirm(1)>/``^1// 11 738 22 авг 2020
    https://chat.openai.com/ считает:

    Дружественные функции в C++ используются для предоставления доступа к закрытым данным класса извне класса, т.е. для реализации функциональности, которая не может быть реализована через общедоступные методы класса или через наследование. Они объявляются с ключевым словом friend внутри класса, и имеют доступ ко всем закрытым членам класса.

    Ссылки используются для передачи аргументов в функцию по ссылке, что может повысить производительность и избежать копирования больших объектов. Однако, ссылки не могут быть использованы для предоставления доступа к закрытым данным класса извне класса, поэтому они не могут полностью заменить дружественные функции.

    Конструктор - это метод класса, который автоматически вызывается при создании нового объекта этого класса. Конструкторы могут иметь параметры и могут быть перегружены (иметь несколько версий с разными параметрами). Параметризованный конструктор - это конструктор, который принимает один или несколько параметров, которые будут использоваться при создании объекта класса. Он позволяет инициализировать объекты класса с заданными значениями, что может быть удобно и полезно при работе с классами. Отличие между конструктором и параметризованным конструктором заключается в том, что параметризованный конструктор принимает аргументы, которые используются для инициализации объекта при его создании, в то время как конструктор может не иметь аргументов, либо принимать аргументы с фиксированными значениями.
     
Загрузка...
Top