(Reading Phone Numbers with and Overloaded Stream Extraction Operator) In Fig. 19.5 the stream extraction and stream insertion operators were overloaded for input and output of objects of the Phone Number class. Rewrite the stream extraction operator to perform the following error checking on input. The operator>> function will need to be reimplemented. a) Input the entire phone number into an array. Test that the proper number of characters has been entered. There should be a total of 14 characters read for a phone number of the form (800) 555-1212. Use ios_base-member-function clear to set failbit for improper input. b) The area code and exchange do not begin with 0 or 1. Test the first digit of the area code and exchange portions of the phone number to be sure that neither begins with 0 or 1. Use ios base-member-function clear to set failbit for improper input. c) The middle digit of an area code used to be limited to 0 or 1 (though this has changed). Test the middle digit for a value of 0 or 1. Use the ios_base-member-function clear to set failbit for improper input. If none of the above operations results in failbit being set for improper input copy the parts of the telephone number into the Phone Number objects area Code exchange and line members. If failbit has been set on the input have the program print an error message and end rather than print the phone number.