3. Углублённое программирование на С/С++. Функции

Поділитися
Вставка
  • Опубліковано 10 лис 2024

КОМЕНТАРІ • 12

  • @gertjh5u64u
    @gertjh5u64u 5 років тому +4

    13:50 с видео понятно, что имеется в виду, но все же ref = b; не является ошибкой, a станет равно b

  • @ruslanyunusov8499
    @ruslanyunusov8499 5 років тому +4

    ошибочки:
    у ссылки можно взять адрес и он будет соответствовать адресу объекта на который она ссылается, 25:52 void foo(int&& x) { ... }; void bar(BigObject&& o) { ... } не уневерсальная ссылка, а ссылка на rvalue

  • @rkozom
    @rkozom 5 років тому +1

    Спасибо!

  • @mishgunplay6783
    @mishgunplay6783 Рік тому

    1:03:53 - правильно: от -128 до 127

    • @АлександрБурлакин-ь5п
      @АлександрБурлакин-ь5п Рік тому

      Правильно: зависит от реализации.

    • @kostyanwest
      @kostyanwest 10 місяців тому

      @@АлександрБурлакин-ь5п
      до C++20: зависит от реализации
      начиная с C++20: от -128 до 127

  • @kostyanwest
    @kostyanwest 10 місяців тому

    9:19 - ключевое слово inline сообщаяет компилятору о том, что тело функции может быть определено в нескольких единицах трансляции (по умолчанию несколько определённых функций вызывают ошибку линковки), при этом программист гаратнирует, что тела этих функций будут одинаковыми (например, если функция написана в заголовочном файле). И этот факт, в свою очередь, позволяет компилятору в любой единице трансляции видеть тело функции и встраивать её по своему усмотрению. Когда функция просто объявлена, но не определена, компилятор вынужден полагаться на линковщик. Правда, в современных линковщиках есть флаг "whole program optimization", который включен по умолчанию в релизной компиляции и каким-то образом умудряется встраивать функции.

  • @КириллКиселев-ч6з
    @КириллКиселев-ч6з 5 років тому

    Про ссылки два вопроса:
    int a = 1;
    int b = 2;
    int &ref = a;
    int *c = &ref;
    cout

    • @Trak898
      @Trak898 5 років тому

      &ref это не адрес ссылки, а адрес, который она хранит. Поскольку ссылка автоматически разыминовывается в отличии указателя, то доступ получают так. Можете вывести &ref вначале и вконце, они одинаковые будут. А вот значение а изменится, поскольку в предпоследней строке вы по адресу, который хранит ссылка записываете новое значение ref = &b у вас бы не скомпилилось

    • @ДмитрийНормов-ю6ц
      @ДмитрийНормов-ю6ц Рік тому

      @@Trak898 , по ходу, тут происходит автоматическое разыменование ссылки (ref), поскольку ссылки разыменовываются автоматом, лектор упоминал об этом....

  • @ДмитрийНормов-ю6ц

    22:30 - косяк. Непонятно: константная ссылка или int ?

  • @widgetii
    @widgetii 6 років тому +1

    25:18
    #include
    int global;
    int& func() {
    return global;
    }
    int main() {
    int& ref_var = func();
    int* ptr_var = &ref_var;
    std::cout