kennen:lib:shared_ptr
no way to compare when less than two revisions
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
— | kennen:lib:shared_ptr [2016-11-19 18:45] (aktuell) – angelegt - Externe Bearbeitung 127.0.0.1 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ====== shared_ptr< | ||
+ | ''# | ||
+ | |||
+ | Besitzverwaltender, | ||
+ | |||
+ | ===== Methoden ===== | ||
+ | |||
+ | | '' | ||
+ | |'' | ||
+ | |'' | ||
+ | |'' | ||
+ | |'' | ||
+ | |||
+ | Die Freigabe der verwalteten Resource erfolgt durch den automatisierten Aufruf des Operators [[../ | ||
+ | Als '' | ||
+ | |||
+ | ===== Siehe auch ===== | ||
+ | | ||
+ | | ||
+ | |||
+ | ===== Beispiel ===== | ||
+ | <code cpp shared_ptr.cpp> | ||
+ | #include < | ||
+ | #include < | ||
+ | |||
+ | int main() | ||
+ | { | ||
+ | auto p = std:: | ||
+ | decltype(p) q = p; | ||
+ | std:: | ||
+ | |||
+ | std::cout << r.use_count() << " Referenzen\n"; | ||
+ | |||
+ | *p.get() | ||
+ | if (q) *q = 2.71828; | ||
+ | |||
+ | std::cout << *r << ' | ||
+ | p = nullptr; | ||
+ | std::cout << *r << ' | ||
+ | q.reset(); | ||
+ | |||
+ | std::cout << *r << ' | ||
+ | std::cout << " | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ===== " | ||
+ | Manchmal benötigt man einen Zeiger auf einen Bestandteil eines dynamisch verwalteten Objekts. Dann kann ein [[https:// | ||
+ | |||
+ | <code cpp aliasing_shared_ptr.cpp> | ||
+ | #include < | ||
+ | #include < | ||
+ | #include < | ||
+ | |||
+ | int main() | ||
+ | { | ||
+ | auto p = std:: | ||
+ | auto py = std:: | ||
+ | p = nullptr; | ||
+ | |||
+ | std::cout << *py << ' | ||
+ | } | ||
+ | </ | ||
+ | |||
kennen/lib/shared_ptr.txt · Zuletzt geändert: 2016-11-19 18:45 von 127.0.0.1