friend square() function for Distance : friend function « Class « C++ Tutorial






#include <iostream>  
  using namespace std;  
  class Distance{  
     private:  
        int feet;  
        float inches;  
     public:  
        Distance() : feet(0), inches(0.0){  }  
                                         
        Distance(int ft, float in) : feet(ft), inches(in){  }  
        void showdist(){ 
           cout << feet << "\'-" << inches << '\"'; 
        }  
        friend float square(Distance);    
  };  
  float square(Distance d){
     float fltfeet = d.feet + d.inches/12;  
     float feetsqrd = fltfeet * fltfeet;    
     return feetsqrd;               
    }  
  int main(){  
     Distance dist(3, 6.0);
     float sqft;  
    
     sqft = square(dist);  
     dist.showdist();  
     cout << sqft;
     return 0;  
  }








9.22.friend function
9.22.1.A friend function
9.22.2.Friend functions can be shared by two or more classes
9.22.3.A function can be a member of one class and a friend of another
9.22.4.Share friend function between classes
9.22.5.friend square() function for Distance
9.22.6.Friend functions and operator overloading
9.22.7.Friend functions can access private members of a class