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 --- .../ConstructorsAndDestructors/circle5.cpp | 88 ++++++++++++++++++++++ .../ConstructorsAndDestructors/circle5.h | 45 +++++++++++ .../ConstructorsAndDestructors/fig09_29.cpp | 44 +++++++++++ .../ConstructorsAndDestructors/point4.cpp | 77 +++++++++++++++++++ .../ConstructorsAndDestructors/point4.h | 41 ++++++++++ 5 files changed, 295 insertions(+) create mode 100644 Bachelor/Prog2/Codebeispiele/1_ch09/Fig09_25_29/ConstructorsAndDestructors/circle5.cpp create mode 100644 Bachelor/Prog2/Codebeispiele/1_ch09/Fig09_25_29/ConstructorsAndDestructors/circle5.h create mode 100644 Bachelor/Prog2/Codebeispiele/1_ch09/Fig09_25_29/ConstructorsAndDestructors/fig09_29.cpp create mode 100644 Bachelor/Prog2/Codebeispiele/1_ch09/Fig09_25_29/ConstructorsAndDestructors/point4.cpp create mode 100644 Bachelor/Prog2/Codebeispiele/1_ch09/Fig09_25_29/ConstructorsAndDestructors/point4.h (limited to 'Bachelor/Prog2/Codebeispiele/1_ch09/Fig09_25_29') diff --git a/Bachelor/Prog2/Codebeispiele/1_ch09/Fig09_25_29/ConstructorsAndDestructors/circle5.cpp b/Bachelor/Prog2/Codebeispiele/1_ch09/Fig09_25_29/ConstructorsAndDestructors/circle5.cpp new file mode 100644 index 0000000..d37278f --- /dev/null +++ b/Bachelor/Prog2/Codebeispiele/1_ch09/Fig09_25_29/ConstructorsAndDestructors/circle5.cpp @@ -0,0 +1,88 @@ +// Fig. 9.28: circle5.cpp +// Circle5 class member-function definitions. +#include + +using std::cout; +using std::endl; + +#include "circle5.h" // Circle5 class definition + +// default constructor +Circle5::Circle5( int xValue, int yValue, double radiusValue ) + : Point4( xValue, yValue ) // call base-class constructor +{ + setRadius( radiusValue ); + + cout << "Circle5 constructor: "; + print(); + cout << endl; + +} // end Circle5 constructor + +// destructor +Circle5::~Circle5() +{ + cout << "Circle5 destructor: "; + print(); + cout << endl; + +} // end Circle5 destructor + +// set radius +void Circle5::setRadius( double radiusValue ) +{ + radius = ( radiusValue < 0.0 ? 0.0 : radiusValue ); + +} // end function setRadius + +// return radius +double Circle5::getRadius() const +{ + return radius; + +} // end function getRadius + +// calculate and return diameter +double Circle5::getDiameter() const +{ + return 2 * getRadius(); + +} // end function getDiameter + +// calculate and return circumference +double Circle5::getCircumference() const +{ + return 3.14159 * getDiameter(); + +} // end function getCircumference + +// calculate and return area +double Circle5::getArea() const +{ + return 3.14159 * getRadius() * getRadius(); + +} // end function getArea + +// output Circle5 object +void Circle5::print() const +{ + cout << "Center = "; + Point4::print(); // invoke Point4's print function + cout << "; Radius = " << getRadius(); + +} // end function print + +/************************************************************************** + * (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. * + *************************************************************************/ \ No newline at end of file diff --git a/Bachelor/Prog2/Codebeispiele/1_ch09/Fig09_25_29/ConstructorsAndDestructors/circle5.h b/Bachelor/Prog2/Codebeispiele/1_ch09/Fig09_25_29/ConstructorsAndDestructors/circle5.h new file mode 100644 index 0000000..e2d8e78 --- /dev/null +++ b/Bachelor/Prog2/Codebeispiele/1_ch09/Fig09_25_29/ConstructorsAndDestructors/circle5.h @@ -0,0 +1,45 @@ +// Fig. 9.27: circle5.h +// Circle5 class contains x-y coordinate pair and radius. +#ifndef CIRCLE5_H +#define CIRCLE5_H + +#include "point4.h" // Point4 class definition + +class Circle5 : public Point4 { + +public: + + // default constructor + Circle5( int = 0, int = 0, double = 0.0 ); + + ~Circle5(); // destructor + void setRadius( double ); // set radius + double getRadius() const; // return radius + + double getDiameter() const; // return diameter + double getCircumference() const; // return circumference + double getArea() const; // return area + + void print() const; // output Circle5 object + +private: + double radius; // Circle5's radius + +}; // end class Circle5 + +#endif + +/************************************************************************** + * (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. * + *************************************************************************/ diff --git a/Bachelor/Prog2/Codebeispiele/1_ch09/Fig09_25_29/ConstructorsAndDestructors/fig09_29.cpp b/Bachelor/Prog2/Codebeispiele/1_ch09/Fig09_25_29/ConstructorsAndDestructors/fig09_29.cpp new file mode 100644 index 0000000..634348a --- /dev/null +++ b/Bachelor/Prog2/Codebeispiele/1_ch09/Fig09_25_29/ConstructorsAndDestructors/fig09_29.cpp @@ -0,0 +1,44 @@ +// Fig. 9.29: fig09_29.cpp +// Display order in which base-class and derived-class +// constructors are called. +#include + +using std::cout; +using std::endl; + +#include "circle5.h" // Circle5 class definition + +int main() +{ + { // begin new scope + + Point4 point( 11, 22 ); + + } // end scope + + cout << endl; + Circle5 circle1( 72, 29, 4.5 ); + + cout << endl; + Circle5 circle2( 5, 5, 10 ); + + cout << endl; + + return 0; // indicates successful termination + +} // end main + +/************************************************************************** + * (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. * + *************************************************************************/ \ No newline at end of file diff --git a/Bachelor/Prog2/Codebeispiele/1_ch09/Fig09_25_29/ConstructorsAndDestructors/point4.cpp b/Bachelor/Prog2/Codebeispiele/1_ch09/Fig09_25_29/ConstructorsAndDestructors/point4.cpp new file mode 100644 index 0000000..8538b6e --- /dev/null +++ b/Bachelor/Prog2/Codebeispiele/1_ch09/Fig09_25_29/ConstructorsAndDestructors/point4.cpp @@ -0,0 +1,77 @@ +// Fig. 9.26: point4.cpp +// Point4 class member-function definitions. +#include + +using std::cout; +using std::endl; + +#include "point4.h" // Point4 class definition + +// default constructor +Point4::Point4( int xValue, int yValue ) + : x( xValue ), y( yValue ) +{ + cout << "Point4 constructor: "; + print(); + cout << endl; + +} // end Point4 constructor + +// destructor +Point4::~Point4() +{ + cout << "Point4 destructor: "; + print(); + cout << endl; + +} // end Point4 destructor + +// set x in coordinate pair +void Point4::setX( int xValue ) +{ + x = xValue; // no need for validation + +} // end function setX + +// return x from coordinate pair +int Point4::getX() const +{ + return x; + +} // end function getX + +// set y in coordinate pair +void Point4::setY( int yValue ) +{ + y = yValue; // no need for validation + +} // end function setY + +// return y from coordinate pair +int Point4::getY() const +{ + return y; + +} // end function getY + +// output Point4 object +void Point4::print() const +{ + cout << '[' << getX() << ", " << getY() << ']'; + +} // end function print + +/************************************************************************** + * (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. * + *************************************************************************/ \ No newline at end of file diff --git a/Bachelor/Prog2/Codebeispiele/1_ch09/Fig09_25_29/ConstructorsAndDestructors/point4.h b/Bachelor/Prog2/Codebeispiele/1_ch09/Fig09_25_29/ConstructorsAndDestructors/point4.h new file mode 100644 index 0000000..bcb87c3 --- /dev/null +++ b/Bachelor/Prog2/Codebeispiele/1_ch09/Fig09_25_29/ConstructorsAndDestructors/point4.h @@ -0,0 +1,41 @@ +// Fig. 9.25: point4.h +// Point4 class definition represents an x-y coordinate pair. +#ifndef POINT4_H +#define POINT4_H + +class Point4 { + +public: + Point4( int = 0, int = 0 ); // default constructor + ~Point4(); // destructor + + void setX( int ); // set x in coordinate pair + int getX() const; // return x from coordinate pair + + void setY( int ); // set y in coordinate pair + int getY() const; // return y from coordinate pair + + void print() const; // output Point3 object + +private: + int x; // x part of coordinate pair + int y; // y part of coordinate pair + +}; // end class Point4 + +#endif + +/************************************************************************** + * (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