namespace cpp {}

C++ lernen, kennen, anwenden

Benutzer-Werkzeuge

Webseiten-Werkzeuge


kennen:lib:const_pointer_cast

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.


kennen:lib:const_pointer_cast [2019-11-20 15:06] (aktuell) – angelegt - Externe Bearbeitung 127.0.0.1
Zeile 1: Zeile 1:
 +====== const_pointer_cast() ======
 +''#include'' [[..:include:memory]]
 +
 +<code cpp>
 +template<class U, class T)
 +std::shared_ptr<U> const_pointer_cast (std::shared_ptr<T> p) 
 +</code> 
 + Liefert referenzzählenden Zeiger auf dynamisches Objekt ohne Schreibschutz. 
 +
 +==== Parameter ====
 +| ''p'' | besitzteilender Zeiger |
 +
 +==== Ergebnis ====
 +Rückgabewert: Mitbesitzender Zeiger oder leerer Zeiger, falls ''p'' leer ist.
 +
 +''const_cast<U*>(p.get())'' muss zulässig sein, führt aber zu undefiniertem Verhalten (zweimalige Freígabe). 
 +
 +==== Siehe auch ====
 +[[static_pointer_cast]].
 +
 +==== Beispiel ====
 +<code cpp const_pointer_cast.cpp>
 +#include <memory>
 +#include <iostream>
 +
 +int main()
 +{
 +  std::shared_ptr<const int> p(new int(42));
 +  std::shared_pointer<int> q = const_pointer_cast<int>(p);
 +  
 +  *q = 23;
 +  std::cout << *q << '\n';
 +}
 +</code>
  

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki