From 33613a85afc4b1481367fbe92a17ee59c240250b Mon Sep 17 00:00:00 2001 From: Sven Eisenhauer Date: Fri, 10 Nov 2023 15:11:48 +0100 Subject: add new repo --- .../1_ch09/elevatorinheritance/door.cpp | 81 ++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 Bachelor/Prog2/Codebeispiele/1_ch09/elevatorinheritance/door.cpp (limited to 'Bachelor/Prog2/Codebeispiele/1_ch09/elevatorinheritance/door.cpp') diff --git a/Bachelor/Prog2/Codebeispiele/1_ch09/elevatorinheritance/door.cpp b/Bachelor/Prog2/Codebeispiele/1_ch09/elevatorinheritance/door.cpp new file mode 100644 index 0000000..7adbe37 --- /dev/null +++ b/Bachelor/Prog2/Codebeispiele/1_ch09/elevatorinheritance/door.cpp @@ -0,0 +1,81 @@ +// Fig. 7.36: door.cpp +// Member-function definitions for class Door. +#include + +using std::cout; +using std::endl; + +#include "door.h" // Door class definition +#include "person.h" // Person class definition +#include "floor.h" // Floor class definition +#include "elevator.h" // Elevator class definition + +// constructor +Door::Door() + : open( false ) // initialize open to false +{ + cout << "door created" << endl; + +} // end Door constructor + +// destructor +Door::~Door() +{ + cout << "door destroyed" << endl; + +} // end ~Door destructor + +// open the door +void Door::openDoor( Person * const passengerPtr, + Person * const nextPassengerPtr, Floor ¤tFloor, + Elevator &elevator ) +{ + if ( !open ) { // if door is not open, open door + open = true; + + cout << "elevator opens its door on floor " + << currentFloor.getNumber() << endl; + + // if passenger is in elevator, tell person to leave + if ( passengerPtr != 0 ) { + passengerPtr->exitElevator( currentFloor, elevator ); + delete passengerPtr; // passenger leaves simulation + + } // end if + + // if passenger waiting to enter elevator, + // tell passenger to enter + if ( nextPassengerPtr != 0 ) + nextPassengerPtr->enterElevator( + elevator, currentFloor ); + + } // end outer if + +} // end function openDoor + +// close the door +void Door::closeDoor( const Floor ¤tFloor ) +{ + if ( open ) { // if door is open, close door + open = false; + cout << "elevator closes its door on floor " + << currentFloor.getNumber() << endl; + + } // end if + +} // end function closeDoor + +/************************************************************************** + * (C) Copyright 1992-2003 by Deitel & Associates, Inc. and Prentice * + * Hall. All Rights Reserved. * + * * + * DISCLAIMER: The authors and publisher of this book have used their * + * best efforts in preparing the book. These efforts include the * + * development, research, and testing of the theories and programs * + * to determine their effectiveness. The authors and publisher make * + * no warranty of any kind, expressed or implied, with regard to these * + * programs or to the documentation contained in these books. The authors * + * and publisher shall not be liable in any event for incidental or * + * consequential damages in connection with, or arising out of, the * + * furnishing, performance, or use of these programs. * + *************************************************************************/ -- cgit v1.2.3