C ++ Warum brauchen Sie WACK_PTR, wenn wir Shared_ptr Use_Count () haben?
Posted: 11 Feb 2025, 05:57
eine dumme Frage stellen. Nach dem, was ich verstehe, ist eine Verwendung von WACK_PTR, um den Zählstatus eines gemeinsamen Zeigers auf ein Objekt zu überprüfen. Konnten wir nicht einfach die shared_ptr use_count () verwenden, um diese Informationen zu erhalten? Wenn ja, warum braucht Weaw Weak_ptr? < /P>
als Beispiel: < /p>
#include
#include
using namespace std;
int main() {
shared_ptr a(new int(10));
weak_ptr wa(a);
a.reset();
assert(a.use_count() == 0); // clause 1 - good. indicate no binding objects
assert(wa.lock() == nullptr); // clause 2 - good. same as above
return 0;
}
< /code>
Klausel 1 & 2 erzeugt identische Ergebnisse. tue der Job?>
als Beispiel: < /p>
#include
#include
using namespace std;
int main() {
shared_ptr a(new int(10));
weak_ptr wa(a);
a.reset();
assert(a.use_count() == 0); // clause 1 - good. indicate no binding objects
assert(wa.lock() == nullptr); // clause 2 - good. same as above
return 0;
}
< /code>
Klausel 1 & 2 erzeugt identische Ergebnisse. tue der Job?>