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/person.cpp | 91 ++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 Bachelor/Prog2/Codebeispiele/1_ch09/elevatorinheritance/person.cpp (limited to 'Bachelor/Prog2/Codebeispiele/1_ch09/elevatorinheritance/person.cpp') diff --git a/Bachelor/Prog2/Codebeispiele/1_ch09/elevatorinheritance/person.cpp b/Bachelor/Prog2/Codebeispiele/1_ch09/elevatorinheritance/person.cpp new file mode 100644 index 0000000..a3cfeb7 --- /dev/null +++ b/Bachelor/Prog2/Codebeispiele/1_ch09/elevatorinheritance/person.cpp @@ -0,0 +1,91 @@ +// Fig. 7.46: person.cpp +// Member-function definitions for class Person. +#include + +using std::cout; +using std::endl; + +#include "person.h" // Person class definition +#include "floor.h" // Floor class definition +#include "elevator.h" // Elevator class definition + +// initialize static member personCount +int Person::personCount = 0; + +// constructor +Person::Person( int destFloor ) + : ID( ++personCount ), + destinationFloor( destFloor ) +{ + // empty body + +} // end Person constructor + +// destructor +Person::~Person() +{ + cout << "(person " << ID << " destructor invoked)" << endl; + +} // end ~Person destructor + +// return person's ID number +int Person::getID() const +{ + return ID; + +} // end function getID + +// person walks onto a floor +void Person::stepOntoFloor( Floor& floor ) +{ + // notify floor person is coming + cout << "person " << ID << " steps onto floor " + << floor.getNumber() << endl; + floor.personArrives( this ); + + // press button on floor + cout << "person " << ID + << " presses floor button on floor " + << floor.getNumber() << endl; + floor.floorButton.pressButton(); + +} // end function stepOntoFloor + +// person enters elevator +void Person::enterElevator( Elevator &elevator, Floor &floor ) +{ + floor.personBoardingElevator(); // person leaves floor + + elevator.passengerEnters( this ); // person enters elevator + + // press button on elevator + cout << "person " << ID + << " presses elevator button" << endl; + elevator.elevatorButton.pressButton(); + +} // end function enterElevator + +// person exits elevator +void Person::exitElevator( + const Floor &floor, Elevator &elevator ) const +{ + cout << "person " << ID << " exits elevator on floor " + << floor.getNumber() << endl; + elevator.passengerExits(); + +} // end function exitElevator + +/************************************************************************** + * (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