--%>

Friend function in C++

Q. What is friend function in C++? What are the risks associated with the use of friend function?

Ans.

As we know that the private members of the class cannot be assessed from outside the class, a non member function cannot have access to the private data of that class. Though there could be a condition where we would like two classes to distribute a particular function.

 

For instance:

Consider a case where two classes' manager and employee have defined. We could like to use a function to operate on the both objects of both classes. In such situation C++ allows the common function to be made friendly with both the classes, thereby allowing the function to be access to the private data of these classes. Such members need not be members of these classes. A member function of one class can be friend function of another class in such a case. They are defining using the case scope resolution operator.

Syntax: Friend return _ type class name : : function name (args) we can also declare all the members functions of one classes as the friend function of another class, in such class the class is called a friend class.

Syntax: Friend class name: A friend function has certain special characteristics:

1.      It is not in scope of the class, it cannot be called by the object of that class.

2.      As it is not in the scope of the class, it cannot be called with the object of that class.

3.      It can be invoked as a normal function without the help of some object.

4.      Unlike member functions, it cannot be access the member names directly and has to be used an object name and dot membership operator with each member name.

5.      It can be stated either in the public or private part of a class without disturbing its sense.

6.      Usually it has the objects as the arguments.

Example

Class X, Y, Z;

Int n;

Public :

 Void value (Int s)

{

 Int x;

X = s;

}

Friend void max (X, Y, Z; ABC);

};

Class ABC

{

Int a;

Public :

Void value (Int s)

{

a = s;

}

Friend void max (XYZ, ABC);

};

Void max (XYZ m, ABC n)

{

If (m. X. > = n. a)

 Cout << m. x.;

else

cout << n. a.;

  }

Int main ();

{

A, B, C a, b, c;

A, b, c value (1);

X, Y, Z x, y, z;

 X, y, z; value (20);

}

Max (X, Y, Z; a, b, c);

Return 0;

   Related Questions in Programming Languages

  • Q : Explain Object reference Object

    Object reference: It is a reference to an object. Languages other than Java employ terms like pointer or address or. It is significant to keep the difference clear between an object and its reference. The variable like argo

    Q : Describe tri-state devices Describe the

    Describe the tri-state devices and explain why they are necessary in a bus oriented system?

  • Q : Define Compilation Compilation : It is

    Compilation: It is a process of translating a programming language. This frequently comprises translating a high level programming language into a low level programming language, and the binary form of a specific instruction set. The translation is ex

  • Q : Define the term Array Define the term

    Define the term Array: It is a fixed-size object which can hold zero (0) or more items of the array's declared type.

  • Q : What is Super type Super type : It is a

    Super type: It is a type with a child sub type. The sub-type or super-type relationship is more common than the sub-class or super-class relationship. An interface which is implemented by the class is a super type of the class. The interface which is

  • Q : Use of System Dynamic and System Runtime

    What is the use of System.Dynamic and System.Runtime.CompilerServices namespaces?

  • Q : When does a name clash take place in

    When does a name clash take place in programming?

  • Q : How much does Symbian Signed

    How much does Symbian Signed certification and testing cost? Answer: Test houses contain their own prices for Symbian Signed testing. So you can check that prices through searching over the internet.

  • Q : Maintaining audit trail of product

    The accuracy of product table data is crucial and the Brwebean’s. owner prefers to have an audit file which contains information regarding all DML activity on the BB_PRODUCT table. This information must point out the user id of the user running a DML statement,

  • Q : Public class in java Q. Explain the

    Q. Explain the concept of public classes in java. How they are useful?