What is Operator Overloading?
- Mimics conventional usage of operators for user defined types
- Operator :: (scope resolution), . (member selection) and .* (member selection thru pointer to function) cannot be overloaded.
EXAMPLE: Demonstrate the usage of operator overloading
#include <iostream> #include <ostream> using namespace std; class Employee { private: int iEmpId; string iEmpName; public: Employee(int, string); friend ostream& operator<<(ostream&, const Employee&); }; // Constructor Employee::Employee(int aEmpId, string aEmpName) { iEmpId = aEmpId; iEmpName = aEmpName; } // Operator Overloading ostream& operator<<(ostream& os, const Employee& emp) { cout << "Emp Id = " << emp.iEmpId << endl; cout << "Emp Name = " << emp.iEmpName << endl; return os; } void main() { Employee e1(100, "Employee1"); Employee e2(200, "Employee2"); cout << e1 << endl; cout << e2 << endl; }OUTPUT:
Emp Id = 100 Emp Name = Employee1 Emp Id = 200 Emp Name = Employee2
0 comments:
Post a Comment