why freind function takes more parameter than normal member
function in c++?
Answer / jeremiah
A friend function needs to know the object on which it must
operate. Class member functions have an implicit "this"
pointer which define the object on which it must operate.
Example:
---------------------------------------------------------
class Number;
// A function that adds two numbers.
// This function must be a friend of the Number class
// because it operates on a private member variable of the
// Number class.
Number Add( const Number& lhs, const Number& rhs )
{
Number result;
result = lhs.m_value + rhs.m_value;
return result;
}
// The Number class
class Number
{
public:
// Constructor - Default to 0.
explicit Number( int value = 0 )
: m_value( value )
{}
// Copy constructor
Number( const Number& copy )
: m_value( copy.m_value )
{}
// Add this number with another and return the result.
// This operator only needs 1 argument because the
// Left-hand side is assumed to be the class itself.
Number operator+( const Number& rhs ) const
{
Number result;
result.m_value = m_value + rhs.m_value;
return result;
}
private:
// Allow the Add function to access the private members
// of this class by making it a friend function.
friend Number Add( const Number&, const Number& );
int m_value;
};
-----------------------------------------------------------
As you can see from the example, the "Add" function takes
two arguments (a left-hand side operator, and a right-hand
side operator), whereas the Number::operator+ member
function only needs to know the right-hand side operator
because the left-hand side operator is assumed to be the
class instance itself.
| Is This Answer Correct ? | 4 Yes | 0 No |
What does sksksk mean in text slang?
Which language is not a true object oriented programming language?
What is polymorphism? Explain with an example.
What is object in oop with example?
Tell me the scenario,Where we can use interfaces or Abstract class.And What is the difference between interfaces and abstract class?
IS IT NECESSARY TO INITIALIZE VARIABLE? WHAT IF THE INSTANCE VARIABLE IS DECLARED final ? IS IT NECESSARY TO INITIALIZE THE final VARIABLE AT THE TIME OF THEIR DECLARATION?
create a class complex having real and imaginary part of a complex no. as a data member. overload the binary operators(+,- and *) to perform the operations on complex no. objects. overload binary operator using friend function.
2 Answers CTS, Delhi University,
What is the Advantage of Interface over the Inheritance in OOPS?
namespace is working on which compiler?
Give an example where we have to specifically use C programming language and C++ programming language cannot be used?
what are the characteristics of oops?
what are the realtime excercises in C++?