#include <iostream> using namespace std; class Buffer { private: int data; public: Buffer() { cout << "Buffer created" << endl; } ~Buffer() { cout << "Buffer destroyed" << endl; } void write(int value) { data = value; } int read() const { return data; } }; class Driver { private: // Driver must own the buffer Buffer *buff; public: // Constructor should accept input value and store it in buffer Driver(int v) { buff = new Buffer; buff->write(v); cout << "Driver initialized" << endl; } void print() const { // Print stored value cout << "Stored value: " << buff->read() << endl; } // Add destructor to observe shutdown ~Driver() { cout << "Driver destroyed" << endl; delete buff; } }; int main() { int value; cin >> value; { Driver drv(value); drv.print(); } return 0; }
Test Cases
Test Results
Input
10
Expected Output
Buffer created Driver initialized Stored value: 10 Driver destroyed Buffer destroyed