Range()The default constructor. Creates a null (uninitialized) range object. The only members that can legally be applied to such an object are the assignment operator=(const Range& x) and the copy constructor.
Range(const Range& x)Copy constructor. Range is implemented as a reference-counted handle class to an object of type RangeRep. The copy constructor copies the reference and increments the reference count in the representation object.
~Range()Destructor. If the range is non-null, the representation object's reference count is decremented. If this reduces the count to 0, the representation object is deleted.