Use IWindowData as an abstract base class for classes containing user defined data. The purpose of IWindowData is to provide a virtual destructor that IWindow can use to delete user defined data when the IWindow object is deleted.
Constructors & DestructorBecause this class is an abstract base class, you cannot directly construct objects of this class. The only way to construct objects of this class is from a derived class. To enforce this, the only constructor we provide for this class is protected. You can destruct objects of this class.