#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