#include <iostream>
using namespace std;
class Vektor {};
class Lichtstrecke; // <--- forward declaration
class Strecke
{
protected:
Vektor _ort ;
Vektor _richtung ;
/*** geschützte Konstruktoren ***/
// Initialisierungskonstruktor mit Anfangs- und Endpunkt von Objekt
Strecke ( Vektor const& anfangspunkt, Vektor const& endpunkt );
public:
/*** Rechenmethoden ***/
// addiert einen Vektor zu der Strecke, also zum Orts- und Richtungsvektor
void operator += ( Vektor const& vek ) ;
// subtrahiert einen Vektor von der Strecke, also vom Orts- und Richtungsvektor
void operator -= ( Vektor const& vek ) ;
/*** Interaktionsmethoden ***/
// gibt den Schnittpunkt von Objekt und str zurück
Vektor operator & ( Strecke const& str ) const ;
/*** Rechenmethoden ***/
// gibt eine ausfallende Lichtstrecke zurück
virtual Lichtstrecke operator <= ( Lichtstrecke const& lichtstrecke ) const = 0 ;
} ;
int main() {
// your code goes here
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3MgVmVrdG9yIHt9OwoKY2xhc3MgTGljaHRzdHJlY2tlOyAvLyA8LS0tIGZvcndhcmQgZGVjbGFyYXRpb24KCmNsYXNzIFN0cmVja2UKewpwcm90ZWN0ZWQ6CiAgICBWZWt0b3IgX29ydCA7CiAgICBWZWt0b3IgX3JpY2h0dW5nIDsKIAovKioqICBnZXNjaMO8dHp0ZSBLb25zdHJ1a3RvcmVuICAqKiovCiAKICAgIC8vIEluaXRpYWxpc2llcnVuZ3Nrb25zdHJ1a3RvciBtaXQgQW5mYW5ncy0gdW5kIEVuZHB1bmt0IHZvbiBPYmpla3QKICAgIFN0cmVja2UgKCBWZWt0b3IgY29uc3QmIGFuZmFuZ3NwdW5rdCwgVmVrdG9yIGNvbnN0JiBlbmRwdW5rdCApOwoKcHVibGljOgovKioqICBSZWNoZW5tZXRob2RlbiAgKioqLwogCiAgICAvLyBhZGRpZXJ0IGVpbmVuIFZla3RvciB6dSBkZXIgU3RyZWNrZSwgYWxzbyB6dW0gT3J0cy0gdW5kIFJpY2h0dW5nc3Zla3RvcgogICAgdm9pZCBvcGVyYXRvciArPSAoIFZla3RvciBjb25zdCYgdmVrICkgOwogCiAgICAvLyBzdWJ0cmFoaWVydCBlaW5lbiBWZWt0b3Igdm9uIGRlciBTdHJlY2tlLCBhbHNvIHZvbSBPcnRzLSB1bmQgUmljaHR1bmdzdmVrdG9yCiAgICB2b2lkIG9wZXJhdG9yIC09ICggVmVrdG9yIGNvbnN0JiB2ZWsgKSA7CiAKLyoqKiAgSW50ZXJha3Rpb25zbWV0aG9kZW4gICoqKi8KIAogICAgLy8gZ2lidCBkZW4gU2Nobml0dHB1bmt0IHZvbiBPYmpla3QgdW5kIHN0ciB6dXLDvGNrCiAgICBWZWt0b3Igb3BlcmF0b3IgJiAoIFN0cmVja2UgY29uc3QmIHN0ciApIGNvbnN0IDsKIAovKioqICBSZWNoZW5tZXRob2RlbiAgKioqLwogCiAgICAvLyBnaWJ0IGVpbmUgYXVzZmFsbGVuZGUgTGljaHRzdHJlY2tlIHp1csO8Y2sKICAgIHZpcnR1YWwgTGljaHRzdHJlY2tlIG9wZXJhdG9yIDw9ICggTGljaHRzdHJlY2tlIGNvbnN0JiBsaWNodHN0cmVja2UgKSBjb25zdCA9IDAgOwp9IDsKCmludCBtYWluKCkgewoJLy8geW91ciBjb2RlIGdvZXMgaGVyZQoJcmV0dXJuIDA7Cn0=