|  |  | An obvious example might be
		 
		int power (int x, int y);double power (double x, double y);
 or
 sort (int N, char* s);
 sort (int N, int* i);
 sort (int N, double* r);// well, perhaps not!
 
		Because of this overloading of the identifier sortwe will
		need three constructors and three destructors.
		
		Overloading is also useful for initialization purposes in
		classes.  Consider
		
		class String {public:
 String (const char* s);// constructor
 String () { text = ""; len = 0; }// overloading
 ~String () { delete [] text; }
 .......
 private:
 char* text;
 int len;
 };
 with the general constructor declared as:
 String :: String (const char* s)
 {
 len = strlen(s);
 text = new char[len+1];
 strcpy(text, s);
 }
 |  |