Rewrite the class Person as the composition a Person 'has-an' Account including the following: 1. encapsulation 2. const member functions 3. all functions required for the main function to compile class Account { private: float balance; public: Account(): balance(0.0) {} Account(float f): balance(f) {} float getBalance() const { return balance; } void setBalance(float f) { balance = f; } }; class Person { Account savings; string name; Person(); }; int main() { Account a(15000); Person p1(); Person p2("John", 10000); Person p3("Kim", a); p2.setName("Joe"); cout <

Computer Networking: A Top-Down Approach (7th Edition)
7th Edition
ISBN:9780133594140
Author:James Kurose, Keith Ross
Publisher:James Kurose, Keith Ross
Chapter1: Computer Networks And The Internet
Section: Chapter Questions
Problem R1RQ: What is the difference between a host and an end system? List several different types of end...
icon
Related questions
Question
**Question 1**

*Rewrite the class Person as the composition a Person 'has-an' Account including the following:*
1. *encapsulation*
2. *const member functions*
3. *all functions required for the main function to compile*

```cpp
class Account {
    private:
        float balance;
    public:
        Account(): balance(0.0) {}
        Account(float f): balance(f) {}
        float getBalance() const { return balance; }
        void setBalance(float f) { balance = f; }
};

class Person {
    Account savings;
    string name;
    Person();
};

int main() {
    Account a(15000);
    Person p1();
    Person p2("John", 10000);
    Person p3("Kim", a);
    p2.setName("Joe");
    cout << p3.getName() << " " << p3.getBalance() << "\n";
    print(p3);
    return 0;
}
```

This is a C++ programming task where the goal is to modify an existing `Person` class. The task involves:

- Incorporating encapsulation to protect member variables.
- Using `const` to ensure certain member functions do not modify any members.
- Implementing all necessary functions for successful compilation and functionality.
Transcribed Image Text:**Question 1** *Rewrite the class Person as the composition a Person 'has-an' Account including the following:* 1. *encapsulation* 2. *const member functions* 3. *all functions required for the main function to compile* ```cpp class Account { private: float balance; public: Account(): balance(0.0) {} Account(float f): balance(f) {} float getBalance() const { return balance; } void setBalance(float f) { balance = f; } }; class Person { Account savings; string name; Person(); }; int main() { Account a(15000); Person p1(); Person p2("John", 10000); Person p3("Kim", a); p2.setName("Joe"); cout << p3.getName() << " " << p3.getBalance() << "\n"; print(p3); return 0; } ``` This is a C++ programming task where the goal is to modify an existing `Person` class. The task involves: - Incorporating encapsulation to protect member variables. - Using `const` to ensure certain member functions do not modify any members. - Implementing all necessary functions for successful compilation and functionality.
Expert Solution
Step 1

//Code

class Account {
private:
float balance;
public:
Account(): balance(0.0) {}

Account(float f): balance(f) {}
float getBalance() const { return balance; }
void setBalance(float f) { balance = f; }
};

class Person {
private:
Account savings;
string name;
public:
Person(): name("") {}

Person(string n, float f): name(n) {
 savings.setBalance(f);
}
Person(string n, Account a): name(n), savings(a) {}
void setName(string n) { name = n; }
string getName() const { return name; }
float getBalance() const { return savings.getBalance(); }
void print() const {
 cout << name << ": " << savings.getBalance() << "\n";
}
};

int main() {
Account a(15000);
Person p1;
Person p2("John", 10000);
Person p3("Kim", a);
p2.setName("Joe");
cout << p3.getName() << ": " << p3.getBalance() << "\n";
p3.print();
return 0;
}

steps

Step by step

Solved in 2 steps

Blurred answer
Recommended textbooks for you
Computer Networking: A Top-Down Approach (7th Edi…
Computer Networking: A Top-Down Approach (7th Edi…
Computer Engineering
ISBN:
9780133594140
Author:
James Kurose, Keith Ross
Publisher:
PEARSON
Computer Organization and Design MIPS Edition, Fi…
Computer Organization and Design MIPS Edition, Fi…
Computer Engineering
ISBN:
9780124077263
Author:
David A. Patterson, John L. Hennessy
Publisher:
Elsevier Science
Network+ Guide to Networks (MindTap Course List)
Network+ Guide to Networks (MindTap Course List)
Computer Engineering
ISBN:
9781337569330
Author:
Jill West, Tamara Dean, Jean Andrews
Publisher:
Cengage Learning
Concepts of Database Management
Concepts of Database Management
Computer Engineering
ISBN:
9781337093422
Author:
Joy L. Starks, Philip J. Pratt, Mary Z. Last
Publisher:
Cengage Learning
Prelude to Programming
Prelude to Programming
Computer Engineering
ISBN:
9780133750423
Author:
VENIT, Stewart
Publisher:
Pearson Education
Sc Business Data Communications and Networking, T…
Sc Business Data Communications and Networking, T…
Computer Engineering
ISBN:
9781119368830
Author:
FITZGERALD
Publisher:
WILEY