CSC241: Object Oriented Programming
Lecture No 24
1
Previous Lecture
•
Efficient string class
–
•
Resolve problem while deleting String objects
Dynamic Type Information
–
dynamic_cast operator
•
Checking class type
pDerv1 = dynamic_cast<Derv1*>(pUnknown)
•
Changing Pointer Types
pDerv1 = dynamic_cast<Derv1*>(pUnknown)
–
typeid operator
•
Class name of object
2
Today’s Lecture
•
•
Example programs
–
Publication company
–
Distance class
Intro to Generic Programming
–
template
3
Example program 1
•
Imagine the publishing company that markets
both book and audiocassette versions of its
works
–
create a class publication (private data: title,
price)
–
derive two classes:
–
•
book, which adds a page count (type int)
•
tape, which adds a playing time in minutes (type float)
Each of the three classes should have a getdata()
function to get its data from the user at the
keyboard, and a putdata() function to display the
data
4
Cont.
–
In a loop, ask the user for data about a book or tape,
and use new to create an object of type book or tape
–
When the user has finished entering the data display
the resulting data using a for loop and a single
statement such as
•
pubarr[j]->putdata();
Write a
program
5
Example program 2
•
In the Distance class, create an overloaded *
operator so that two distances can be multiplied
together. Make it a friend function so that you
can use such expressions as
–
dist1 = 7.5 * dist2;
Write a main() program to test this operator.
Write a
program
6
7