answersLogoWhite

0


Best Answer

Binary operators require two operands (l-value and r-value) and therefore require two arguments when overloading via external functions. When overloading class member operators, the l-value is the class instance itself (the implicit this pointer), therefore only the r-value need be given as an argument.

User Avatar

Wiki User

11y ago
This answer is:
User Avatar

Add your answer:

Earn +20 pts
Q: Why to take two arguments in binary operator overloading using friend function?
Write your answer...
Submit
Still have questions?
magnify glass
imp
Continue Learning about Engineering

What is plus operator is it unary or binary?

There is no unary plus in C, but if there were, it would have only one operand, unlike the binary plus which has two: x = a + b; /* binary plus */ x = + b; /* unary plus -- not in C*/ x = a - b; /* unary plus */ x = - b; /* unary minus */


Operator original function in OOP C plus plus?

I'm not sure I fully understand the question. Operators and functions are not the same. However, many operators also have named alternatives implemented as functions, such that "add" is synonymous with the binary increment operator while "plus" is synonymous with the unary plus operator. However these are completely separate implementations that do the same thing such that the function implementation typically invokes the operator (with implicit inline expansion to factor away the unwanted function call). There is no way to determine the underlying function of an operator, nor the underlying operator of a function without having access to the implementation source code. Such implementation details cannot be accessed at compile time let alone runtime.


What is a binary operator in the C language?

In programming languages, a binary operator is an operator which takes two operands. For example, the divide-by sign between divident and divisor is a binary operator:x = a / bOther binary operators include + - * & | ^, among others.Note that the operator is binary, not the character representing it. Take, for example, the minus sign. The minus sign represents the binary subtraction operator when used between two arithmetic expressions (e.g. x = a - b). However, when used left of an arithmetic expression, it indicates a negative sign (e.g. x = -a). Parentheses may be required to avoid ambiguity or enhance readibility of both effects are combined (e.g. x = a - (-b)).


What is difference between conditional operator and bitwise operator?

A binary operator is simply an operator that has two parts, written to the left and to the right of the operator, e.g.:1 + 2The binary operator can be a logical operator ("and", "or", "xor", etc. - but "not" is a unary operator), or it can be in some other category, like the arithmetic operator shown above.A binary operator is simply an operator that has two parts, written to the left and to the right of the operator, e.g.:1 + 2The binary operator can be a logical operator ("and", "or", "xor", etc. - but "not" is a unary operator), or it can be in some other category, like the arithmetic operator shown above.A binary operator is simply an operator that has two parts, written to the left and to the right of the operator, e.g.:1 + 2The binary operator can be a logical operator ("and", "or", "xor", etc. - but "not" is a unary operator), or it can be in some other category, like the arithmetic operator shown above.A binary operator is simply an operator that has two parts, written to the left and to the right of the operator, e.g.:1 + 2The binary operator can be a logical operator ("and", "or", "xor", etc. - but "not" is a unary operator), or it can be in some other category, like the arithmetic operator shown above.


What is override keyword in c sharp?

Operator Overloading is a Polymorphism concept. Standard unary and binary operators like (+, -, *, /, %, &, |, ) have a predefined implementation that describes their behavior when applied on operands. However using operator overloading we can provide additional meanings to these operators.For example we can add two integers using a + b. However the + operator cannot be used to add two objects for example two vectors. For this we need to overload the operator '+' so as to implement it toadd two vector objects.refer related links for having a look at the example.

Related questions

When does 1x1 equal 2?

If x (times sign) is a deceptive binary operator which seems to be a multiplication function but is instead some arbitrary binary function that returns 2 when its arguments are 1 and 1. Seriously though, 1x1 does not equal 2, not even in other bases.


Distinguish between operator overloading and function overloading?

in C++ there is no real difference as operators are overloaded by implementing them as functions. However, while we differentiate between function overloads by the function signature (the number and type of parameters), operator overloads are distinguished only by the parameter types. The parameters are interpreted as operands, and the number of operands will depend upon whether the operator is unary, binary or ternary. That is, for any given operator, the number of operands will be the same for each overload you implement. The only exceptions are the unary increment (++) and decrement (--) operators as they each have postfix and prefix variants. In order to differentiate their signatures, an unreferenced or dummy parameter must be passed to the postfix variants.


What is binary operation?

A binary operator is simply an operator that works with two operands (for example, two numbers). The binary operator is usually written between the two operands. Examples include the familiar operations of addition, subtraction, multiplication, or division - for example, in: 2 + 3 the "plus" is the binary operator, which works on the two numbers written on either side of it. What is an operator: Basically a function (calculation rule), written in a special way.


What is a binary operation?

A binary operator is simply an operator that works with two operands (for example, two numbers). The binary operator is usually written between the two operands. Examples include the familiar operations of addition, subtraction, multiplication, or division - for example, in: 2 + 3 the "plus" is the binary operator, which works on the two numbers written on either side of it. What is an operator: Basically a function (calculation rule), written in a special way.


Why ostream operators not overloaded using member functions?

Consider the following line: cout<<obj; where obj is the object of Demo class. In this case we are overloading "<<" operator. But overloading the binary operator using member function, the left hand operand should be the object of relevant class. Here in this case left hand side operand is not the object of Demo class. It is object of ostream class. Hence we cant overload ostream operators using member function. But we can overload these type of operators using friend functions. Thanks, Prof. D. H. Ingole


What is difference between binary and unary operator in c language?

The number of arguments will be one for the unary operators and two for the binary operators. In the case of unary operators, the argument must be of the same type as that of the enclosing class or structure.


How do you find the product of 16?

"Product" is a binary operator. A binary operator takes two numbers as input and combines them into an output. Your question gives only one number as input and so a sensible answer is impossible. "Product" is a binary operator. A binary operator takes two numbers as input and combines them into an output. Your question gives only one number as input and so a sensible answer is impossible. "Product" is a binary operator. A binary operator takes two numbers as input and combines them into an output. Your question gives only one number as input and so a sensible answer is impossible. "Product" is a binary operator. A binary operator takes two numbers as input and combines them into an output. Your question gives only one number as input and so a sensible answer is impossible.


What is plus operator is it unary or binary?

There is no unary plus in C, but if there were, it would have only one operand, unlike the binary plus which has two: x = a + b; /* binary plus */ x = + b; /* unary plus -- not in C*/ x = a - b; /* unary plus */ x = - b; /* unary minus */


What is the commutative property of a fact?

Commutativity is a property of binary operations. A fact is not a binary operator.


Operator original function in OOP C plus plus?

I'm not sure I fully understand the question. Operators and functions are not the same. However, many operators also have named alternatives implemented as functions, such that "add" is synonymous with the binary increment operator while "plus" is synonymous with the unary plus operator. However these are completely separate implementations that do the same thing such that the function implementation typically invokes the operator (with implicit inline expansion to factor away the unwanted function call). There is no way to determine the underlying function of an operator, nor the underlying operator of a function without having access to the implementation source code. Such implementation details cannot be accessed at compile time let alone runtime.


Which is the most effective to combine 2 and 3?

A binary operator.


What is a binary operator in the C language?

In programming languages, a binary operator is an operator which takes two operands. For example, the divide-by sign between divident and divisor is a binary operator:x = a / bOther binary operators include + - * & | ^, among others.Note that the operator is binary, not the character representing it. Take, for example, the minus sign. The minus sign represents the binary subtraction operator when used between two arithmetic expressions (e.g. x = a - b). However, when used left of an arithmetic expression, it indicates a negative sign (e.g. x = -a). Parentheses may be required to avoid ambiguity or enhance readibility of both effects are combined (e.g. x = a - (-b)).