What will the output be for the following code? #include #include #include using namespace std; class Student { private: string m_name; shared ptr m_pFriend; public: Student (string name) : m_name (name) { } void makeFriend (shared_ptr f) { m_pFriend=f; } }; void mystery (shared_ptr p) { cout « "ref count: " « p.use_count () « endl; p->makeFriend (p); weak ptr wps = p; auto p2 = wps.lock () ; cout « "ref count: " « p.use_count () « endl; int main () { auto ps (make_shared("Ellise")); cout <« "ref count: " <« ps.use_count () « endl; mystery (ps); cout << "ref count: « ps.use_count () « endl; return O;

C++ for Engineers and Scientists
4th Edition
ISBN:9781133187844
Author:Bronson, Gary J.
Publisher:Bronson, Gary J.
Chapter12: Adding Functionality To Your Classes
Section: Chapter Questions
Problem 1PP
icon
Related questions
Question
Question 8
What will the output be for the following code?
#include <string>
#include <iostream>
#include <memory>
using namespace std;
class Student {
private:
string m_name;
shared ptr<Student> m_pFriend;
public:
Student (string name) : m_name (name) { }
void makeFriend (shared_ptr<Student> f) { m_pFriend=f; }
void mystery (shared_ptr<Student> p) {
cout « "ref count: " « p.use_count () « endl;
p->makeFriend (p);
weak ptr<Student> wps = p;
auto p2 = wps.lock ();
cout « "ref count: " « p.use_count () <« endl;
int main () {
auto ps (make_shared<Student>("Ellise"));
cout <« "ref count: " « ps.use_count () <« endl;
mystery (ps) ;
cout << "ref count:
« ps.use_count () « endl;
return O;
Transcribed Image Text:Question 8 What will the output be for the following code? #include <string> #include <iostream> #include <memory> using namespace std; class Student { private: string m_name; shared ptr<Student> m_pFriend; public: Student (string name) : m_name (name) { } void makeFriend (shared_ptr<Student> f) { m_pFriend=f; } void mystery (shared_ptr<Student> p) { cout « "ref count: " « p.use_count () « endl; p->makeFriend (p); weak ptr<Student> wps = p; auto p2 = wps.lock (); cout « "ref count: " « p.use_count () <« endl; int main () { auto ps (make_shared<Student>("Ellise")); cout <« "ref count: " « ps.use_count () <« endl; mystery (ps) ; cout << "ref count: « ps.use_count () « endl; return O;
Expert Solution
steps

Step by step

Solved in 3 steps with 1 images

Blurred answer
Knowledge Booster
Data members
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
C++ for Engineers and Scientists
C++ for Engineers and Scientists
Computer Science
ISBN:
9781133187844
Author:
Bronson, Gary J.
Publisher:
Course Technology Ptr