С++ 4.2. Приведение типов. ООП: Классы и структуры.

  Рет қаралды 7,941

Лекторий ФПМИ

Лекторий ФПМИ

Күн бұрын

Лектор: Илья Мещерин.

Пікірлер: 11
@mihail8159
@mihail8159 Ай бұрын
😍😍😍😍😍Спасибо 👍👍👍👍👍👍👍👍
@mihail8159
@mihail8159 Ай бұрын
cout
@sergeyinozemcev1070
@sergeyinozemcev1070 3 жыл бұрын
Инкапсуляция - это наличие неких уникальных свойств объекта, обеспечивающих возможность обобщить его до некого множества. Иначе, если есть что-то что позволяет говорить о неком наборе данных или наборе функций как о свойствах и методах объекта, если мы можем построить некую хорошо узнаваемую ассоциацию функционального кола с общепринятым устоявшимся гуманитарным понятием, то мы можем осуществить инкапсуляцию. Проще говоря, создание классов объектов и есть инкапсуляция.
@Sergey-mq3ol
@Sergey-mq3ol Жыл бұрын
не сомневался что в комментах найдется тот кто все знает
@princessmary5556
@princessmary5556 Жыл бұрын
Бред.
@КириллДанильчук-л5щ
@КириллДанильчук-л5щ 4 жыл бұрын
34:34 (Можно явно создать указатель на нужную версию функции и вызвать её с параметрами, такое встречается на практике в Qt (у меня), для выбора нужной версии слота) void f(int&) { std::cout
@КириллДанильчук-л5щ
@КириллДанильчук-л5щ 4 жыл бұрын
@@mesyarik Просто неявный каст, вообще можно написать так: auto ptr = static_cast(&f);
@КириллДанильчук-л5щ
@КириллДанильчук-л5щ 4 жыл бұрын
@@mesyarik Там даже есть ещё одна проблема, где можно данным способом решить, а что если я заведу указатель на функцию f у которой 2 перегрузки, одна от int, а вторая от std::vector, какой адрес он должен поместить в указатель? Там тоже нужен явный тип или каст, нельзя будет написать auto ptr = &f;
@bloodyink3423
@bloodyink3423 3 жыл бұрын
@@mesyarik Илья, привет! Мне кажется, что соль в том, что все исходит из языка Си, в котором указатели на функции являются типизированными в том смысле, что при их описании необходимо указывать профиль функции. Это является плюшевой абстракцией в том смысле, что компилятору необходимо знать, с какого рода функциями он может работать ( помнить адрес в данной переменной - указателе ) требовать кол-во аргументов, расправляться ретёрн-вэлью. Теперь в бой вступает декорирование имён функций. Выбрать явно необходимую функцию компил не может без контекста, а контекст для неявного каста укажет тип лвэлью. В этом мы можем убедиться, написав выражение &f; - напишет, что ему неочевидно. ( если функция имеет не один профиль ). Выход - кастовать. Если у функции нет перегрузок, то компил вполне удачно выведет тип указателя на функции с тем же auto. То есть, как я это понимаю, это наследие языка Си . И вполне логичное для компилятора. Указатель требует лишь "подчинения" профилю - это и является "типом указателя функции". Вот пример кода: #include void f(int&) { std::cout
@jenyaermakov2514
@jenyaermakov2514 3 жыл бұрын
Липман, "Язык программирования Си++, базовый курс", у меня стр. 323, "Указатели на перегруженные функции", "...Компилятор использует тип указателя для выявления используемой версии перегруженной функции. Тип указателя должен точно соответствовать одной из версий .." P.S. Я когда читал, вообще на это внимание не обратил, а сейчас понял - оказывается актуальный вопрос!
@sergeyinozemcev1070
@sergeyinozemcev1070 3 жыл бұрын
сбивать ссылку нужно когда мы перегружаем две похожие функции для конст и неконст аргументов и всю реальную логику пишем в конст версии, а в не конст версии мы сначала адаптируем аргумент к конст версии, а потом снимаем конст строгость с результата конст версии и возвращаем результат со сбитым конст. :)
С++ 5. Конструкторы и деструкторы.
1:32:10
Лекторий ФПМИ
Рет қаралды 7 М.
哈莉奎因怎么变骷髅了#小丑 #shorts
00:19
好人小丑
Рет қаралды 50 МЛН
С++ 4.1. Ссылки и константы.
1:41:16
Лекторий ФПМИ
Рет қаралды 7 М.
С++ 12. RTTI, dynamic_cast, vtables.
1:30:35
Лекторий ФПМИ
Рет қаралды 7 М.
C++ 11. Полиморфизм и виртуальные функции.
1:34:03
Лекторий ФПМИ
Рет қаралды 6 М.
C++ 14. Перегрузка и специализация шаблонов.
1:19:32
Лекторий ФПМИ
Рет қаралды 4,4 М.
Программисты-самоучки... Слушайте внимательно.
22:45
Евгений Афанасьев
Рет қаралды 67 М.
C++ 27. move-семантика, move-конструкторы
1:21:15
Лекторий ФПМИ
Рет қаралды 10 М.
Python VS С# | Согласен / Не согласен
14:27
Технологии в Контуре
Рет қаралды 21 М.