#include <iostream>
#include <vector>
#include <cstdio>
using namespace std;
class Point
{
double x, y, z;
public:
// constructor from 3 values
Point(double x, double y, double z);
// method display
void display();
double getX() { return x ; };
double getY() { return y ; };
double getZ() { return z ; };
};
// constructor from 3 values
Point::Point(double x, double y, double z)
: x(x), y(y), z(z)
{}
void Point::display()
{
cout << "Point(" << x << ", " << y << ", " << z << ")\n";
}
class Line
{
Point pnt1, pnt2;
public:
// constructor from 2 points
Line(Point& pnt1, Point& pnt2);
// method display line
void display();
};
// constructor from 2 points
Line::Line(Point& _pnt1, Point& _pnt2)
: pnt1(_pnt1), pnt2(_pnt2)
{}
// method display line
void Line::display()
{
cout << "Line(Point(" << pnt1.getX() << ", " << pnt1.getY() << ", " << pnt1.getZ() << ")" << ", Point(" << pnt2.getX() << ", " << pnt2.getY() << ", " << pnt2.getZ() << ")\n";
}
int main()
{
// initialise object Point
cout << endl << "Point initialisation:" << endl;
Point pnt = Point(0.0, 0.0, 0.0);
cout << "pnt = "; pnt.display();
Point pnt2 = Point(1.0, 1.0, 1.0);
cout << "pnt2 = "; pnt2.display();
// initialising object Line
cout << "Line initialisation:" << endl;
Line line = Line(pnt, pnt2);
line.display();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8Y3N0ZGlvPgoKCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgoKY2xhc3MgUG9pbnQKewogICAgZG91YmxlIHgsIHksIHo7CgogICAgcHVibGljOgogICAgLy8gY29uc3RydWN0b3IgZnJvbSAzIHZhbHVlcwogICAgUG9pbnQoZG91YmxlIHgsIGRvdWJsZSB5LCBkb3VibGUgeik7CgogICAgLy8gbWV0aG9kIGRpc3BsYXkKICAgIHZvaWQgZGlzcGxheSgpOwoJCglkb3VibGUgZ2V0WCgpIHsgcmV0dXJuIHggOyB9OwoJZG91YmxlIGdldFkoKSB7IHJldHVybiB5IDsgfTsKCWRvdWJsZSBnZXRaKCkgeyByZXR1cm4geiA7IH07Cn07CgovLyBjb25zdHJ1Y3RvciBmcm9tIDMgdmFsdWVzClBvaW50OjpQb2ludChkb3VibGUgeCwgZG91YmxlIHksIGRvdWJsZSB6KQo6IHgoeCksIHkoeSksIHooeikKe30KCnZvaWQgUG9pbnQ6OmRpc3BsYXkoKQp7CiAgICBjb3V0IDw8ICJQb2ludCgiIDw8IHggPDwgIiwgIiA8PCB5IDw8ICIsICIgPDwgeiA8PCAiKVxuIjsKfQoKCgpjbGFzcyBMaW5lCnsKICAgIFBvaW50IHBudDEsIHBudDI7CgogICAgcHVibGljOgogICAgLy8gY29uc3RydWN0b3IgZnJvbSAyIHBvaW50cwogICAgTGluZShQb2ludCYgcG50MSwgUG9pbnQmIHBudDIpOwoKICAgIC8vIG1ldGhvZCBkaXNwbGF5IGxpbmUKICAgIHZvaWQgZGlzcGxheSgpOwp9OwoKLy8gY29uc3RydWN0b3IgZnJvbSAyIHBvaW50cwpMaW5lOjpMaW5lKFBvaW50JiBfcG50MSwgUG9pbnQmIF9wbnQyKQo6IHBudDEoX3BudDEpLCBwbnQyKF9wbnQyKQp7fQoKLy8gbWV0aG9kIGRpc3BsYXkgbGluZQp2b2lkIExpbmU6OmRpc3BsYXkoKQp7CiAgICBjb3V0IDw8ICJMaW5lKFBvaW50KCIgPDwgcG50MS5nZXRYKCkgPDwgIiwgIiA8PCBwbnQxLmdldFkoKSA8PCAiLCAiIDw8IHBudDEuZ2V0WigpIDw8ICIpIiA8PCAiLCBQb2ludCgiIDw8IHBudDIuZ2V0WCgpIDw8ICIsICIgPDwgcG50Mi5nZXRZKCkgPDwgIiwgIiA8PCBwbnQyLmdldFooKSA8PCAiKVxuIjsKfQoKaW50IG1haW4oKQp7CiAgICAvLyBpbml0aWFsaXNlIG9iamVjdCBQb2ludAogICAgY291dCA8PCBlbmRsIDw8ICJQb2ludCBpbml0aWFsaXNhdGlvbjoiIDw8IGVuZGw7CgogICAgUG9pbnQgcG50ID0gUG9pbnQoMC4wLCAwLjAsIDAuMCk7CiAgICBjb3V0IDw8ICJwbnQgPSAiOyBwbnQuZGlzcGxheSgpOwoKICAgIFBvaW50IHBudDIgPSBQb2ludCgxLjAsIDEuMCwgMS4wKTsKICAgIGNvdXQgPDwgInBudDIgPSAiOyBwbnQyLmRpc3BsYXkoKTsKCiAgICAvLyBpbml0aWFsaXNpbmcgb2JqZWN0IExpbmUKICAgIGNvdXQgPDwgIkxpbmUgaW5pdGlhbGlzYXRpb246IiA8PCBlbmRsOwoKICAgIExpbmUgbGluZSA9IExpbmUocG50LCBwbnQyKTsKICAgIGxpbmUuZGlzcGxheSgpOwoKICAgIHJldHVybiAwOwp9
Point initialisation:
pnt = Point(0, 0, 0)
pnt2 = Point(1, 1, 1)
Line initialisation:
Line(Point(0, 0, 0), Point(1, 1, 1)