Towards the end of a project the client requests (demands ) modifications to their Leave Application .
How many classes may be affected by the system modification?
System changes are more likely related to low level details which shouldn’t affect more general classes.
class Person {
private:
int
idNum;
string firstName;
string lastName;
public:
void setData(int id, string fn, string ln);
void printData() const;
};
void Person::setData(int id, string first, string last)
{
idNum = id;
lastName = last;
firstName = first;
}
void Person::printData() const
{
cout << "ID: " << idNum << ", Name: " << firstName << " " << lastName << endl;
}
class Customer : public Person {
private:
double balanceDue;
public:
void setBalanceDue(double);
void outputBalanceDue() const;
};
void Customer::setBalanceDue(double bal)
{
balanceDue = bal;
}
void Customer::outputBalanceDue() const
{
cout << "Balance due $" << balanceDue << endl;
}
int main()
{
Customer cust1;
// Inherited functions
cust1.setData (537, "Mr", "Bob");
cust1.printData();
// Extra functions
cust1.setBalanceDue(123.45);
cust1.outputBalanceDue();
return 0;
}
-idNum
-firstName
-lastName
-balanceDue
---------------
+setData()
+printData()
+setBalanceDue()
+outputBalanceDue()