Object Oriented Programming Lab-04 (Copy Constructor)
Object Oriented Programming Lab-04 (Copy Constructor)
Copy Constructor
The copy constructor is a constructor which creates an object by initializing it with an object of the same class,
which has been created previously. The copy constructor is used to:
If a copy constructor is not defined in a class, the compiler itself defines one. If the class has pointer variables and
has some dynamic memory allocations, then it is a must to have a copy constructor.
class myClass{
private:
int myData;
public:
myClass(int d = 0)
{
myData = d;
}
};
int main()
{
myClass C(6);
return 0;
}
private:
int myData;
public:
myClass(int d = 0)
{
myData = d;
}
int main()
{
myClass C1(6);
myClass C2 = C1
return 0;
}
Lab Task
Create Time class making use of Copy constructor and overloaded functions:
In this lab you will write a class called Time. The Time class will have three data members: hours, minutes, and
seconds (all ints). Times will be stored using a 24 hour clock, so 10 AM is stored as 10 and 10 PM is stored as
22.
default constructor
This function initializes the Time object to contain 12 midnight (hour zero, minutezero,
seconds zero).
This function has parms for the hour, minutes, and secconds. It initializes the Time object to the values given by
the parms.
copy constructor
This function initializes the Time object to contain the same values as the parm.
setTime
This function has parms for the hour, minute, and second, and returns void.setTime sets the time to the values
given by the parms.
showTime
This function has no parms and returns void. It prints the time using the normal 12 hour clock and AM/PM
designation. For example, if hours is 21, minutes is 32 and seconds is 5, the time should be displayed as 9:32:05
PM. If hours is 5, minutes is 12, and seconds is 45, the time should be displayed as 5:12:45 AM. Don't forget to
add a leading zero if the minutes and/or the seconds contains a value less than 10!
tick
This function has no parms and returns void. It increments the time by onesecond, adjusting the minutes
and hours if necessary.
difference
This function has one parm which is Time object and returns a Time object which contains the calculated
time difference of calling object and the recieved Time object. Prototype of this function must be as:
• Time difference(Time);
and its call may be as:
• Time T3 = T1.difference(T2);
Write client code to test your Time class. Your main function should:
• Create two Time objects and prompt the user to enter values for the Time objects.
• Print the Time objects.
• Tick the first Time object 100 times, then print the first Time object.
• Tick the Second Time object 30 times, then print the second Time object.
• Create a third Time object that is initialized by the default constructor.
• Create a fourth Time object that is initialized to 10:56:05AM.
• Create a fifth Time object that is initialized to be a copy of the fourth Time object.
• Print the third, fourth, and fifth Time objects.