1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
|
#include <iostream>
using namespace std;
class WeeklySales
{
char* salesPerson;
double* amount; // Pointer to an array
int noOfWeek; // Size of the array
public:
// parameterised constructor
WeeklySales(char* personSales, double* amountToArray, int arraySize)
{
salesPerson = new char[strlen(personSales) + 1];
strcpy(salesPerson, personSales);
amount = amountToArray;
noOfWeek = arraySize;
}
// default constructor
WeeklySales()
{
salesPerson = new char[strlen("Unknown") + 1];
strcpy(salesPerson, "Unknown");
//amount = 0.00;
noOfWeek = 13;
double amtArray[] = {0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.00};
amount = amtArray;
}
// Copy constructor
//& <-- reference/pointing || Cloning/copy
WeeklySales(const WeeklySales& weeklySalesCopy)
{
salesPerson = new char[strlen(weeklySalesCopy.salesPerson) + 1];
strcpy(salesPerson, weeklySalesCopy.salesPerson);
amount = weeklySalesCopy.amount;
noOfWeek = weeklySalesCopy.noOfWeek;
}
//print for test purpose
void printweeklySalesCopy()
{
cout << "Name of Salesperson: " << salesPerson << endl;
cout << "Amount: $" << amount << endl;
cout << "Number of Weeks: " << noOfWeek << endl << endl;
}
};
int main ()
{
// parameterised
WeeklySales test1;
cout << "Account 1 using parameterised constructor\n";
test1.printweeklySalesCopy();
// default
WeeklySales test2;
cout << "Account 2 using default constructor\n";
test2.printweeklySalesCopy();
// copy
WeeklySales test3(test2); //cloning
cout << "Account 3 via cloning through copy constructor\n";
test3.printweeklySalesCopy();
}
|