From 6a686933faddf7f2e2b96f3ffe0163c330249981 Mon Sep 17 00:00:00 2001 From: Hans Buchmann Date: Thu, 19 Nov 2020 11:38:09 +0100 Subject: [PATCH] other as pointer --- 6-cia/src/geo2d-vz.cc | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/6-cia/src/geo2d-vz.cc b/6-cia/src/geo2d-vz.cc index 8c93f0e..598e178 100644 --- a/6-cia/src/geo2d-vz.cc +++ b/6-cia/src/geo2d-vz.cc @@ -15,7 +15,7 @@ class Point //non default constructor Point(const Point& other); //copy constructor ~Point(); //destructor no parameters - double distance(Point other); + double distance(Point* other); //other is a pointer static double distance(Point p,Point q); private: @@ -50,11 +50,15 @@ double Point::distance(Point p,Point q) //is not a member of Point // |private } -double Point::distance(Point other) //is a member of Point +double Point::distance(Point* other) //is a member of Point { - return std::hypot(xc-other.xc, - yc-other.yc); -} //destructor of other + return std::hypot(xc-(*other).xc, //deref with * + yc- other->yc); //deref with -> +/* other notation + return std::hypot(xc-other->xc, + yc-other->yc); +*/ +} //---------------------------------------------- Line @@ -76,8 +80,19 @@ destructor of Point 6,8 other d=5 destructor of Point 6,8 q destructor of Point 3,4 p + */ +/* with other as pointer +constructor of Point 3,4 p +constructor of Point 6,8 q +d=5 +destructor of Point 6,8 q +destructor of Point 3,4 p + +*/ + + int main(int argc,char**args) { Point p(3,4); @@ -85,7 +100,7 @@ int main(int argc,char**args) /* distance (3,4) -> (6,8) = sqrt(3*3+4*4)=sqrt(25)=5 */ - auto d1=p.distance(q); + auto d1=p.distance(&q); //address of q *no* copy std::cout<<"d="<