+ 1
Query on use_count of shared pointer
Hi Refer code below: https://www.sololearn.com/compiler-playground/cnwgbEXzqv7E I have a confusion on last line's output. Pointer printed is correct as it is matching with pObj2 raw pointer. Then why count is still 2? Isn't it expected to be 1? https://code.sololearn.com/cnwgbEXzqv7E/?ref=app
2 Réponses
+ 3
your expectation is wrong.
there are two shared_ptr objects to the "clsTest(2)" :
1- the assignment to "m_pObj" inside "setReportee" method.
2- a temporary created by the calling method "getReportee". // the temporary is destroyed at the of the calling method and ref count decremented to 1.
here is an example : https://www.sololearn.com/compiler-playground/cqThQoTLtCI2
+ 2
Thanks.
I am getting count as 1 if
shared_ptr<clsTest> getReportee()
Is changed to
shared_ptr<clsTest>& getReportee()