Polymorphism - Object Oriented Programming - Lecture Slides, Slides of Object Oriented Programming

Polymorphism, Simple Payroll Application, Sample Payroll, Sample Output, Never Treat Arrays Polymorphically, Shape Hierarchy Revisited, DrawShapes(), Polymorphism and Arrays are the points you can learn in this object oriented programming subject.

Typology: Slides

2011/2012

Uploaded on 11/09/2012

bacha
bacha 🇮🇳

4.3

(41)

213 documents

1 / 30

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Object-Oriented Programming
(OOP)
Lecture No. 30
Docsity.com
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e

Partial preview of the text

Download Polymorphism - Object Oriented Programming - Lecture Slides and more Slides Object Oriented Programming in PDF only on Docsity!

Object-Oriented Programming

(OOP)

Lecture No. 30

Polymorphism – Case Study

A Simple Payroll Application

OO Model

Employee

SalariedEmp HourlyEmp CommEmp

getName calcSalary

sales commRate

hours hourlyRate

salary

calcSalary calcSalary

calcSalary

name taxRate

String

String operator = operator <<

pStr

Class Employee

class Employee {

private: String name; double taxRate; public: Employee( String&, double ); String getName(); virtual double calcSalary() = 0;

}

Class SalariedEmp

class SalariedEmp : public Employee

{

private:

double salary;

public:

SalariedEmp(String&,double,double); virtual double calcSalary();

}

… Class SalariedEmp

SalariedEmp::SalariedEmp(String& n,

double tr, double sal) : Employee( n, tr ) { salary = sal;

}

double SalariedEmp::calcSalary() {

double tax = salary * taxRate; return salary – tax;

}

… Class HourlyEmp

HourlyEmp ::HourlyEmp( String& n,

double tr, int h, double hr )

: Employee( n, tr ) { hours = h; hourlyRate = hr;

}

… Class HourlyEmp

double HourlyEmp::calcSalary()

{

double grossPay, tax;

grossPay = hours * hourlyRate; tax = grossPay * taxRate;

return grossPay – tax;

}

… Class CommEmp

CommEmp::CommEmp( String& n,

double tr, double s, double cr ) : Employee( n, tr ) {

sales = s; commRate = cr;

}

… Class CommEmp

double CommEmp::calcSalary()

{

double grossPay = sales * commRate;

double tax = grossPay * taxRate;

return grossPay – tax;

}

…A Sample Payroll

void generatePayroll(Employee* emp[], int size) {

cout << “Name\tNet Salary\n\n”;

for (int i = 0; i < size; i++) { cout << emp[i]->getName() << ‘\t’ << emp[i]->calcSalary() << ‘\n’; }

}

Sample Output

Name Net Salary

Aamir 14250

Fakhir 7520

Fuaad 14400

Shape Hierarchy Revisited

Shape

Line Circle Triangle

draw

calcArea

draw

calcArea

draw

calcArea

draw

calcArea

Shape Hierarchy

class Shape {

public:

Shape(); virtual void draw(){ cout << “Shape\n”; } virtual int calcArea() { return 0; }

};