Implementing compare()as a friend function for Integer class - C++ Class

C++ examples for Class:Member Function

Description

Implementing compare()as a friend function for Integer class

Demo Code

                                               
#include <iostream>
                                               
class Integer//from  w ww. j  a  v  a 2s  . c  o m
{
private:
  int n;
                                               
public:
  Integer(int m = 0);
  Integer(Integer& obj);                                          // Copy constructor
  friend  int compare(const Integer& obj1, const Integer& obj2);  // friend compare function
  int getValue() {return n;}
  void setValue(int m){ n = m; }
  void show();
};
                                               
// Copy constructor
Integer::Integer(Integer& obj) : n(obj.n)
{
  std::cout << "Object created by copy constructor." << std::endl;
}
                                               
// Constructor
Integer::Integer(int m) : n(m)
{
  std::cout << "Object created." << std::endl;
}
                                               
void Integer::show()
{
  std::cout << "Value is " << n << std::endl;
}
                                               
int compare(const Integer& obj1, const Integer& obj2)
{
  if(obj1.n < obj2.n)
    return -1;
  else if(obj1.n==obj2.n)
    return 0;
  return 1;
}
                                               
                                               
int main()
{
  std::cout << "Create i with the value 10." << std::endl;
  Integer i {10};
  i.show();
  std::cout << "Change value  of i to 15." << std::endl;
  i.setValue(15);
  i.show();
                                               
  std::cout << "Create j from object i." << std::endl;
  Integer j {i};
  j.show();
  std::cout << "Set value of j to 150 times that of i." << std::endl;
  j.setValue(150*i.getValue());
  j.show();
                                               
  std::cout << "Create k with the value 300." << std::endl;
  Integer k {300};
  k.show();
  std::cout << "Set value of k to sum of i and j values." << std::endl;
  k.setValue(i.getValue()+j.getValue());
  k.show();
                                               
  std::cout << "Result of comparing i and j is " << compare(i, j) << std::endl;
  std::cout << "Result of comparing k and j is " << compare(k, j) << std::endl;
}

Result


Related Tutorials