Creation and Destruction of Chatty Objects

Can you preduct the output of this program?

#include <iostream> #include <memory> using namespace std; #include "chatty.h" void f(Chatty a, Chatty &b, Chatty *c) { cout << "Point f" << endl; a.set(12); b.set(30); delete c; cout << "Point g" << endl; } int main() { Chatty ch1(16), ch2, *cp; cout << "Point A" << endl; cp = new Chatty(123); ch2 = ch1; ch1.set(55); cout << "Point B" << endl; f(ch1, ch2, cp); cout << "Point C" << endl; }