'def title Бележки по ООП при C++ - ООП, КН, 2025-2026 'def desc Полезна информация и детайли относно обектно-ориентираното програмиране при C++ # {title} {pagenav 2 min;18 March 2026;18 March 2026} Този документ съдържа редица полезна информация и детайли относно обектно-ориентираното програмиране при C++. ## Голяма петица формат ```cpp 'snippet 1 $ ./RuleOfFive.cpp ## {` &&A}, rvalue и rvalue reference {` lvalue} е всяка стойност, която има "име". Това са аргументи на функции, променливи, ... {` rvalue} е всяка стойност за която нямаме "име". Най-често срещаните са върнатите стойноти от функция/оператор. Тези стойности са временни и идеята е че ще бъдат изтрити (и на практика, данните им ще бъдат копирани/пренесени в нещо с име, {` lvalue}). Можем да правим референции върху {` rvalue}: ```cpp A&& rvalueRef = functionWhichReturnsA(); Обаче, тези референции дават (временно) име към {` rvalue}-то. Това означава, че те самите стават {` lvalue}. Поради тази прична не можем да имаме повече от една {` rvalue} референция към едно {` rvalue}: ```cpp A&& ref1 = functionWhichReturnsA(); A&& ref2 = ref1; // Грешка! И не можем да подаваме аргумент {` rvalue} на друга функция: ```cpp void foo(A&& ref1) { \... } void bar(A&& ref2) { foo(ref2); // Грешка! } \n\n {i Съпътстващи ресурси:} .bulleted - {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}