DEV Community

Cover image for Friend Class
Sakshi
Sakshi

Posted on

4

Friend Class

Friend Class A friend class can access private and protected members of other class in which it is declared as friend. It is sometimes useful to allow a particular class to access private members of other class. For example, a LinkedList class may be allowed to access private members of Node.

A friend class can access both private and protected members of the class in which it has been declared as friend.

#include <iostream>
using namespace std;




class Bestfriend1 
{


public:
int age;

private:
string purse;


public:

Bestfriend1 () 
  {

age = 14;

purse = "pink";

} 

void demo () 
  {

cout << "I am " << age << " years old\n";

cout << "I have " << purse <<
      " purse and I don't share it with anyone except my friend\n";

} 
friend class Bestfriend2;

//bestfriend2 is its friend
//it cant do anything except being 
//a frnd here, as it is declared and defined before its frnd //class
};



class Bestfriend2 
{


public:
int age;

private:
string dress;


public:
Bestfriend2 () 
  {

age = 14;

dress = "lilac";

} 
void show (Bestfriend1 & bf) 
  {

cout << "I am " << age << " years old\n";

cout << "I have " << bf.purse << " purse and " << dress << " dress\n";

} 
friend class Bestfriend1;

//it can access members of bestfriend1

};



class Stranger
{

public:
int age;

string dress;

string purse;


Stranger ()
  {

age = 14;

dress = "purple";

purse = "blue";

} 

void show ()
  {

cout << "I am " << age << " years old\n";

cout << "I have " << purse << " purse and " << dress << " dress\n";

} 

};




int
main () 
{

Bestfriend1 bf1;

bf1.demo ();

Bestfriend2 bf2;

bf2.show (bf1);


Stranger s1;

s1.show ();

return 0;

}



Enter fullscreen mode Exit fullscreen mode

Object

I am 14 years old
I have pink purse and I don't share it with anyone except my friend
I am 14 years old
I have pink purse and lilac dress
I am 14 years old
I have blue purse and purple dress

Enter fullscreen mode Exit fullscreen mode

Heroku

Build apps, not infrastructure.

Dealing with servers, hardware, and infrastructure can take up your valuable time. Discover the benefits of Heroku, the PaaS of choice for developers since 2007.

Visit Site

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs