storable.cpp
517 Bytes
#include <iostream>
class Storable {
public:
Storable(){};
virtual void write(){};
virtual ~Storable()
{
write();
} // to be called
// from overriding destructors
};
class Data : public Storable {
public:
int* data;
Data()
{
data = new int(32);
};
~Data()
{
delete data;
};
void write() override
{
std::cout << *(this->data) << std::endl;
};
};
int main()
{
Data d;
Storable* ptr = &d;
ptr->write();
}