#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 v){
buf.write(v);
printf("Driver initialized\n");
}
void print() const {
// Print stored value
printf("Stored value: %d\n",buf.read());
}
// Add destructor to observe shutdown
~Driver(){
printf("Driver destroyed\n");
}
};
int main() {
int value;
cin >> value;
{
Driver drv(value);
drv.print();
}
return 0;
}
Input
10
Expected Output
Buffer created Driver initialized Stored value: 10 Driver destroyed Buffer destroyed