#include<<iostream.h> class Complex { public: int v1, v2; }; class C { int val; public: int greater(int v1); int greater(Complex * C1); int get_val(); C(int init); }; int C::greater(int v1) { if(v1>val) val=v1; return val; } int C::greater(Complex * C1) { if(C1->v1>val) return(val=C1->v1); return val; } int C::get_val() { return val; } C::C(int init) { val=init; } int main() { Complex * Com=new Complex; C * C1 = new C(3); Com->v1 = 5; Com->v2 =4; cout<Plain text version to compile and run.greater(4) << " " << C1->greater(Com) << '\n'; return 0; }
Functions are different if they have different numbers or types of arguments. Back to overloading note