Why do I get different results for the following two cases? I am passing by value in both cases.
Case1: using public member function: (output: 2:1)
#include <iostream>
using namespace std;
class one {
int hrs; int mins;
public:
void in(int h, int m)
{ hrs = h; mins = m; }
friend void dis(one);
};
void dis(one objone)
{ cout << objone.hrs <<":"<< objone.mins << endl; }
int main ()
{
one obj1;
obj1.in(2, 1);
dis(obj1);
return 0;
}
Case2: using friend function. (output:-20704:32763)
#include <iostream>
using namespace std;
class one
{
int hrs; int mins;
friend void in(one);
friend void dis(one);
};
void in(one objone)
{ objone.hrs = 2; objone.mins=1; }
void dis(one objone)
{ cout << objone.hrs <<":"<< objone.mins << endl; }
int main ()
{
one obj1;
in(obj1);
dis(obj1);
return 0;
}