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

preview_player
Показать описание


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

Смотрите также:

VK Team — это безграничные возможности проявить себя. Мы делаем современные и быстрые интернет-сервисы, доступные каждому. На этом канале делимся опытом компании VK, рассказываем о технологиях, наших образовательных проектах и жизни команды.

Рекомендации по теме
Комментарии
Автор

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

gertjhuu
Автор

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

ruslanyunusov
Автор

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

kostyanwest
Автор

Про ссылки два вопроса:
int a = 1;
int b = 2;
int &ref = a;
int *c = &ref;
cout << "c=" << *c << endl;
ref = b;
cout << "b=" << ref << endl;
Такой код компилируется без ошибок, хотя по лекции ссылки не переинициализируются и на них нельзя получить указатель

КириллКиселев-чз
Автор

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

ДмитрийНормов-юц
Автор

25:18
#include <iostream>


int global;


int& func() {
return global;
}


int main() {
int& ref_var = func();
int* ptr_var = &ref_var;
std::cout << ptr_var << std::endl;
}

widgetii