Forms with mutable Area
form.cpp
Go to the documentation of this file.
1 #include "form.h"
2 
3 #include <iostream>
4 using namespace std;
5 
6 Form::~Form() = default;
7 Quadrat::~Quadrat() = default;
8 Kreis::~Kreis() = default;
9 
10 bool operator<(const Form &a, const Form &b)
11 {
12  return a.area() < b.area();
13 }
14 
15 bool kleiner (const Form *a, const Form *b)
16 {
17  return a->area() < b->area(); // uses operator<(const Form &a, const Form &b)
18 }
19 
20 
21 ostream& operator<<(ostream& s, const Point2D& rhs)
22 {
23  s << "(" << rhs.GetX() << "," << rhs.GetY() <<")";
24  return s;
25 }
26 
27 // Output-Operator : Here we benefit from polymorphism
28 ostream& operator<<(ostream& s, const Form& rhs)
29 {
30  s << rhs.classname() << " mit Mittelpunkt ";
31  s << "(" << rhs.GetX() << "," << rhs.GetY() <<")";
32  s << " hat ein Flaeche von " << rhs.area();
33  return s;
34 }
Definition: form.h:73
virtual float area() const =0
float GetX() const
Definition: form.h:80
float GetY() const
Definition: form.h:84
virtual std::string classname() const
Definition: form.h:89
virtual ~Form()
~Kreis() override
Class containing a point in 2D.
Definition: form.h:12
float GetX() const
Getter.
Definition: form.h:28
float GetY() const
Getter.
Definition: form.h:32
~Quadrat() override
bool kleiner(const Form *a, const Form *b)
Definition: form.cpp:15
bool operator<(const Form &a, const Form &b)
Definition: form.cpp:10
ostream & operator<<(ostream &s, const Point2D &rhs)
Definition: form.cpp:21