1: // Filename: REM3.CPP 2: // Purpose: Implementation file corresponding to REM3.H. 4: #include <iostream> 5: #include <cstring> 6: using namespace std; 8: #include "REM3.H" 9: #include "PAUSE.H" 12: // Private members of class: 13: // int date; 14: // char* messagePtr; 16: //****************************************************************** 17: Reminder::Reminder(/* in */ int date, 18: /* in */ const char* messageString) 19: { 20: this->date = date; 21: messagePtr = new char[strlen(messageString) + 1]; 22: strcpy(messagePtr, messageString); 24: // Un-comment the following two lines for run-time confirmation 25: // that this constructor has been called: 26: // cout << "Now in constructor for class Reminder (version 3) ... \n"; 27: // Pause(0); cout << endl; 28: } 31: //****************************************************************** 32: Reminder::~Reminder() 33: { 34: delete [] messagePtr; 36: // Un-comment the following two lines for run-time confirmation 37: // that the destructor has been called: 38: // cout << "Now in the destructor for class Reminder (version 3) ... \n"; 39: // Pause(0); cout << endl; 40: } 43: //****************************************************************** 44: void Reminder::Display() const 45: { 46: static char* monthString[12] = 47: { 48: "January", "February", "March", "April", 49: "May", "June", "July", "August", 50: "September", "October", "November", "December" 51: }; 53: int year = date/10000; 54: int month = date%10000 / 100; 55: int day = date%10000 % 100; 56: cout << monthString[month-1] << ' ' << day << ", " << year << endl 57: << messagePtr << endl; 58: } 61: //****************************************************************** 62: void Reminder::MutilateMessageString() 63: // Used only for pedagogical reasons to help show that only a 64: // "shallow" copy of an object has been made. 65: // Pre: self has been initialized with a message of size >= 2. 66: // Post: Alternate characters of the message pointed to by 67: // messagePtr have been changed to 'X'. 68: { 69: for (int i = 0; i < strlen(messagePtr); i++) 70: if (i % 2 == 0) messagePtr[i] = 'X'; 71: }