diff options
1 files changed, 22 insertions, 22 deletions
| -rw-r--r-- | src/teaching/oop-2025/oop-notes/index.du | 44 |
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} |