#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;
}
Input
10
Expected Output
Buffer created Driver initialized Stored value: 10 Driver destroyed Buffer destroyed