Skip to main content

C++ Friend Function

C++ Friend Function

In C++ a function or an entire class may be declared to be a friend of another class or function. Friend function can also be used for function overloading.
Friend function declaration can appear anywhere in the class. But a good practice would be where the class ends. An ordinary function that is not the member function of a class has no privilege to access the private data members, but the friend function does have the capability to access any private data members. The declaration of the friend function is very simple. The keyword friend in the class prototype inside the class definition precedes it.

Example to Demonstrate working of friend Function

/* C++ program to demonstrate the working of friend function.*/
#include <iostream>
using namespace std;

class Distance {
private:
int meter;
public:
Distance(): meter(0){ }
friend int func(Distance); //friend function
};

int func(Distance d){
//function definition
d
.meter=10; //accessing private data from non-member function
return d.meter;
}

int main(){ Distance D;
cout
<<"Distace: "<<func(D);
system
("pause");
return 0;
}
Program Output:
cplusplus-friend-function
Here, friend function func() is declared inside Distance class. So, the private data can be accessed from this function. Though this example gives you what idea about the concept of friend function.
In C++, friend means to give permission to a class or function. The non-member function has to grant an access to update or access the class.
The advantage of encapsulation and data hiding is that a non-member function of the class cannot access a member data of that class. Care must be taken using friend function because it breaks the natural encapsulation, which is one of the advantages of object oriented programming. It is best used in the operator overloading.

Comments

For Programs Click Here

Popular posts from this blog

Syllabus

Syllabus  C Programming Tutorials C Tutorial C Introduction History of C Programming Language C Installation C Program Structure C Input and Output (I/O) C Format Specifiers Declaration & Assignments C Tokens C Identifiers C Keywords C Constants C Operators C Data Types C Variables C Preprocessors C Type Casting C Custom Header File Flow Control C Decision Making C if Statements C if-else Statements C Nested if-else Statements C else-if Statements C goto Statement C switch Statements C Loops C while loops C do while loops C for loops Functions C Functions C Function Arguments C Library Functions C Variable Scope Arrays & Strings C Arrays C Strings Pointers C Pointers C Dynamic Memory Allocation Structure & Union C Structures C Unions File I/O C File Handling C fopen C fclose C getc C putc C getw C putw C fprintf C fscanf C fgets C fputs C feof                                     ...

Python Overview

Python Overview Python is a general purpose object-oriented programming language with high-level programming capabilities. It has become famous because of its clear and easily understandable syntax, portability and easy to learn. Some Facts About Python Python was developed in the late eighties i.e. late 1980’s by  Guido van Rossum  at the  National Research Institute for Mathematics and Computer Science  in the Netherlands as a successor of ABC language capable of exception handling and interfacing. Python is derived from programming languages such as: ABC, Modula 3, small talk, algol-68. PHP page is a file with  .py  extension that contains could be the combination of HTML Tags and Python scripts. In December 1989 the creator developed the 1st python interpreter as a  hobby  and then in 16 October 2000, Python 2.0 was released with many new features. On 3rd December 2008,  Python 3.0  was released with more testing and includes new fea...

C++ Tokens

Declaration & Assignments C++ Tokens As mentioned earlier, C++ is the superset of  C  and so most constructs of C are legal in C++ with their meaning and usage unchanged. So tokens, expressions and data types are similar like that of C. It also is preferred to understand the concepts of C before learning C++. However there are some exceptions and additions in C++ which you will not get in C. In this chapter you will learn about what are tokens, and the different types of tokens, expressions, and basic data types. What are Tokens Each individual word and punctuation is referred to as a token in C++. Tokens are the smallest building block or smallest unit of a C++ program. These following tokens are available in C++: Identifiers Keywords Constants Operators Strings Identifiers : Identifiers are names given to different entries such as variables, structures and functions. Also identifier names should have to be unique because these entities are used in the execution of the pr...