Answer Posted / the dj ak
by: The Dj Ak
www.thedjak.co.nr
www.the-dj-ak.webs.com
www.thedjak.webs.com
What is a Friend Function?
A friend function is a special function in c++ which inspite
of not being member fuction
of a class has privalage to access private and protected
data of a class.
A friend function is a non member function of a class, that
is declared as a friend using
the keyword "friend" inside the class. By declaring a
function as a friend, all the access
permissions are given to the function.
A friend function is used for accessing the non-public
members of a class.
A class can allow non-member functions and other classes to
access its own
private data, by making them friends. Thus, a friend
function is an ordinary
function or a member of another class.
Need for Friend Function:
As discussed in the earlier sections on access specifiers,
when a data
is declared as private inside a class, then it is not
accessible from outside
the class. A function that is not a member or an external
class will not
be able to access the private data. A programmer may have a
situation where
he or she would need to access private data from non-member
functions and
external classes. For handling such cases, the concept of
Friend functions
is a useful tool.
How to define and use Friend Function in C++:
The friend function is written as any other normal function,
except
the function declaration of these functions is preceded with
the keyword
friend. The friend function must have the class to which it
is declared as
friend passed to it in argument.
Some important points to note while using friend functions
in C++:
* The keyword friend is placed only in the function
declaration of the friend
function and not in the function definition.
.
* It is possible to declare a function as friend in any
number of classes.
.
* When a class is declared as a friend, the friend class
has access to the
private data of the class that made this a friend.
.
* A friend function, even though it is not a member
function, would have the
rights to access the private members of the class.
.
* It is possible to declare the friend function as
either private or public.
.
* The function can be invoked without the use of an
object. The friend function
has its argument as objects, seen in example below.
properties of friend function:
1. if a function to be made friend of a class than it should
be declared within body
of the class priciding with keyword friend.
2.freind function never breaks the security.
3.it should not be defined in name of class nor scope
resolution operator is used in it's
defination even the keyword freind is also not used while
defining friend function.
4.when friend function is called nither name of object nor
dot operator is used. however
it may accept the object as argument who's value it want's
to access.
5.it doen't matter in which section of the class we have
declared a freind function.
Example to understand the friend function:
#include
class exforsys
{
private:
int a,b;
public:
void test()
{
a=100;
b=200;
}
friend int compute(exforsys e1)
//Friend Function Declaration with keyword friend and
with the
object of class exforsys to which it is friend passed
to it
};
int compute(exforsys e1)
{
//Friend Function Definition which has access to private
data
return int(e1.a+e2.b)-5;
}
main()
{
exforsys e;
e.test();
cout<<"The result is:"<
//Calling of Friend Function with object as argument.
}
The output of the above program is
The result is:295
The function compute() is a non-member function of the class
exforsys. In order
to make this function have access to the
private data a and b of class exforsys , it is created as a
friend function
for the class exforsys. As a first step,
the function compute() is declared as friend in the class
exforsys as:
friend int compute (exforsys e1)
disadvantage of friend functions is that they require an
extra line
of code when you want dynamic binding. To get the effect of
a virtual friend,
the friend function should call a hidden (usually
protected:) virtual[20]
member function.
What is the use of friend function?
Answer
# 1
Sometimes a function is best shared among a number of
different classes. Such functions can be declared either as
member functions of one class or as global functions. In
either case they can be set to be friends of other classes,
by using a friend specifier in the class that is admitting
them. Such functions can use all attributes of the class
which names them as a friend, as if they were themselves
members of that class. A friend declaration is essentially a
prototype for a member function, but instead of requiring an
implementation with the name of that class
attached by the double colon syntax, a global function or
member function of another class provides the match.
Is This Answer Correct ? | 22 Yes | 8 No |
Post New Answer View All Answers
What is serialization in php?
Is variable name casesensitive in php?
How can we destroy the cookie in php?
What is inheritance in php?
What is cookies php?
How can I learn php fast?
What kind of things have you done on the social side?
How to find the index of an element in an array php?
What is uniqid php?
Explain what does the unset() function means?
Tell me what is htaccess?
How to update memcached when you make changes to php?
How to open a file for reading?
What language is php based on?
What is the purpose of php?