Professional Documents
Culture Documents
S23BSCS020
S23BSCS020
// 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);
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() {
};
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;
// 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;