Summary Files Commits Branches @commit @diff @stats
path: root / src / teaching / oop-2025 / oop-notes / index.du
diff options
context:
space:
mode:
1 files changed, 22 insertions, 22 deletions
-rw-r--r--src/teaching/oop-2025/oop-notes/index.du44
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}