#pragma once class Location { protected: Location() = default; virtual ~Location() = default; friend class LocationFactory; };