From 6b8cae12cb5d60b37931332d9d8008649ae14566 Mon Sep 17 00:00:00 2001 From: Syndamia Date: Sat, 12 Sep 2026 11:31:19 +0300 Subject: feat!: Update dunbar markup Currently the newest version of the markup is not on the main branch, mostly because of polish and the documentation. As an effect from the changes to the language, the sitemap is the only thing which needs to be created externally. --- src/teaching/oop-2025/oop-notes/index.du | 44 ++++++++++++++++---------------- 1 file changed, 22 insertions(+), 22 deletions(-) (limited to 'src/teaching/oop-2025/oop-notes') diff --git a/src/teaching/oop-2025/oop-notes/index.du b/src/teaching/oop-2025/oop-notes/index.du index c3641fa..4b11a5d 100644 --- a/src/teaching/oop-2025/oop-notes/index.du +++ b/src/teaching/oop-2025/oop-notes/index.du @@ -1,48 +1,48 @@ -# Бележки по ООП при C++ - ООП, КН, 2025-2026 +'def title Бележки по ООП при C++ - ООП, КН, 2025-2026 +'def desc Полезна информация и детайли относно обектно-ориентираното програмиране при C++ -'define expected-reading 2 min -'define created 18 March 2026 -'define edited 18 March 2026 -[$pagenav] +# {title} + +{pagenav 2 min;18 March 2026;18 March 2026} Този документ съдържа редица полезна информация и детайли относно обектно-ориентираното програмиране при C++. ## Голяма петица формат -```c++ -'include ./RuleOfFive.cpp +```cpp +'snippet 1 $ ./RuleOfFive.cpp -## [`&&A`], rvalue и rvalue reference +## {` &&A}, rvalue и rvalue reference -[`lvalue`] е всяка стойност, която има "име". +{` lvalue} е всяка стойност, която има "име". Това са аргументи на функции, променливи, ... -[`rvalue`] е всяка стойност за която нямаме "име". +{` rvalue} е всяка стойност за която нямаме "име". Най-често срещаните са върнатите стойноти от функция/оператор. -Тези стойности са временни и идеята е че ще бъдат изтрити (и на практика, данните им ще бъдат копирани/пренесени в нещо с име, [`lvalue`]). +Тези стойности са временни и идеята е че ще бъдат изтрити (и на практика, данните им ще бъдат копирани/пренесени в нещо с име, {` lvalue}). -Можем да правим референции върху [`rvalue`]: -```c++ +Можем да правим референции върху {` rvalue}: +```cpp A&& rvalueRef = functionWhichReturnsA(); -Обаче, тези референции дават (временно) име към [`rvalue`]-то. -Това означава, че те самите стават [`lvalue`]. +Обаче, тези референции дават (временно) име към {` rvalue}-то. +Това означава, че те самите стават {` lvalue}. -Поради тази прична не можем да имаме повече от една [`rvalue`] референция към едно [`rvalue`]: -```c++ +Поради тази прична не можем да имаме повече от една {` rvalue} референция към едно {` rvalue}: +```cpp A&& ref1 = functionWhichReturnsA(); A&& ref2 = ref1; // Грешка! -И не можем да подаваме аргумент [`rvalue`] на друга функция: -```c++ +И не можем да подаваме аргумент {` rvalue} на друга функция: +```cpp void foo(A&& ref1) { - ... + \... } void bar(A&& ref2) { foo(ref2); // Грешка! } \n\n -[*Съпътстващи ресурси:*] +{i Съпътстващи ресурси:} .bulleted -- [url https://web.archive.org/web/20200627194253/https://thbecker.net/articles/rvalue_references/section_05.html https://thbecker.net/articles/rvalue_references/section_05.html] +- {url https://thbecker.net/articles/rvalue_references/section_05.html;https://web.archive.org/web/20200627194253/https://thbecker.net/articles/rvalue_references/section_05.html} -- cgit v1.3.1-26-gb76a