#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:
Buffer buf;
public:
Driver(int value){
buf.write(value);
cout << "Driver initialized" << endl;
}
void print() const {
cout << "Stored value: " << buf.read() << endl;
}
~Driver(){
cout << "Driver destroyed" << endl;
}
};
int main() {
int value;
cin >> value;
{ //these are the obj scoped braces
Driver drv(value);
drv.print();
}
return 0;
}
Input
10
Expected Output
Buffer created Driver initialized Stored value: 10 Driver destroyed Buffer destroyed