You are on page 1of 5

#include <iostream>

using namespace std;

// Part 1: Friend
Functions.

class Rectangle {

private:

float length;

float width;

public:

// Constructor.

Rectangle(float l, float
w){

length= l;

width= w;

// Declare friend
functions.

friend float
calculateArea(Rectangle
rect);

friend float
calculatePerimeter(Recta
ngle rect);

};

// Friend function to
calculate the area of the
rectangle.

float
calculateArea(Rectangle
rect) {
return rect.length *
rect.width;

// Friend function to
calculate the perimeter
of the rectangle.

float
calculatePerimeter(Recta
ngle rect) {

return 2 * (rect.length
+ rect.width);

// Part 2: Friend Classes.

class BankAccount {

private:

string accountHolder;

float balance;

// Constructor.

public:

BankAccount(string
holder, float
initialBalance){

accountHolder= holder;

balance= initialBalance;

// Declare
BankManager as a friend
class.

friend class
BankManager;
// Function to display
account details.

void displayAccount() {

cout << "Account


Holder: " <<
accountHolder << ",
Balance: $" << balance
<< endl;

};

class BankManager {

public:

// Function to modify
the balance of a
BankAccount.

void
modifyBalance(BankAcco
unt& account, float
amount) {

account.balance +=
amount;

};

int main() {

// Part 1: Friend
Functions.

Rectangle rect1(5.0,
3.0);

Rectangle rect2(4.0,
6.0);
cout << "Rectangle 1
Area: " <<
calculateArea(rect1) << ",
Perimeter: " <<
calculatePerimeter(rect1
) << endl;

cout << "Rectangle 2


Area: " <<
calculateArea(rect2) << ",
Perimeter: " <<
calculatePerimeter(rect2
) << endl;

// Part 2: Friend
Classes.

BankAccount
account1("diya", 1000.0);

BankAccount
account2("Nida", 500.0);

BankManager
manager;

account1.displayAccount
();

account2.displayAccount
();

// Modify account
balances using
BankManager.

manager.modifyBalance(
account1, 200.0);

manager.modifyBalance(
account2, -100.0);
account1.displayAccount
();

account2.displayAccount
();

return 0;

You might also like