a = 2 + 3 assign(a, add(2,3));
operator+It is possible to overloading almost all operators in C++. This list contains all operators we can overloading :
+ - * / % ^ & | ~ ! = += -= *= /= %= ^= &= |= > >>= = && || ++ -- ->* , -> [] () new delete new[] delete[]In the following example, we will overload > operators:
// Overloading the stream-insertion and // stream-extraction operators. #include <iostream> using std::cout; using std::cin; using std::endl; using std::ostream; using std::istream; #include <iomanip> using std::setw; class PhoneNumber { friend ostream &operator<<( ostream&, const PhoneNumber& ); friend istream &operator>>( istream&, PhoneNumber &); private: char areaCode[ 4 ]; // 3-digit area code and null char exchange[ 4 ]; // 3-digit exchange and null char line[ 5 ]; // 4-digit line and null }; // Overloaded stream-insertion operator (cannot be // a member function if we would like to invoke it with //cout <<somePhoneNumber;). ostream &operator<<( ostream &output, constPhoneNumber &num ) { output << "(" << num.areaCode << ") " << num.exchange << "-" << num.line; return output; // enables cout << a << b << c; } istream &operator>>( istream &input, PhoneNumber &num ) { input.ignore(); // skip ( input >> setw( 4 ) >> num.areaCode; // input area code input.ignore( 2 ); // skip ) and space input >> setw( 4 ) >> num.exchange; // input exchange input.ignore(); // skip dash (-) input >>setw( 5 ) >> num.line; // input line return input; // enables cin >> a >> b >> c; } int main() { PhoneNumber phone; // create object phone cout << "Enter phone number in the form (123) 456-7890:\n"; // cin >> phone invokes operator>> function by // issuing the call operator>>(cin, phone ). cin >> phone; // cout<< phone invokes operator<< function by // issuing the call operator<<(cout, phone ). cout << "The phone number entered was: " << phone << endl; return 0; }
Enter phone number in the form (123) 456-7890: (800) 555-1212 The phone number entered was: (800) 555-1212Note: You can find the full source code of this example in code.zip file.