#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 BUf; public: // Constructor should accept input value and store it in buffer Driver(int value){ BUf.write(value); cout<<"Driver initialized"<<endl; } void print() const { // Print stored value cout<<"Stored value: "<<BUf.read()<<endl; } // Add destructor to observe shutdown ~Driver(){cout<<"Driver destroyed"<<endl;} }; int main() { int value; cin >> value; { Driver drv(/* pass value */value); drv.print(); } return 0; }
Test Cases
Test Results
Input
10
Expected Output
Buffer created Driver initialized Stored value: 10 Driver destroyed Buffer destroyed