Passing Class Objects, Instances
--------------------------------------------------------------------------------
I have a project creating a cartesian point, then a line segment, then a line comparison. Each has its own class .h and .cpp file. Main just starts the program to CartesianPoint test, in the point class. My question is after I create an instance of the point class and create a point, say P1, how can I then pass this object, (an instance of the point class) to the LineSegment class, to find slope and such. Line inherits LineSegment which inherits CartesianPoint. I have no idea what I'm doing.
Thanks
include <iostream>
#include "CartesianPoint.h"
#include "LineSegment.h"
#include "Line.h"
#include "stdafx.h"
using namespace std;
double main()
{
CartesianPoint::test();
LineSegment::test();
return (0);
} // end main
-----------------------------------------
#ifndef CARTESIANPOINT_H
#define CARTESIANPOINT_H
#include "stdafx.h"
class CartesianPoint {
public:
CartesianPoint();
CartesianPoint(double xx, double yy);
double getx();
double gety();
void set(double xx, double yy);
static void test();
void print();
//void print(double pOne, double pTwo, double pThree, double pFour);
virtual ~CartesianPoint();
protected:
double x;
double y;
}; // end clas CartesianPoint
#endif
--------------------------------------------
#include <iostream>
#include <iomanip>
#include <cmath>
#include "stdafx.h"
#include "CartesianPoint.h"
#include "LineSegment.h"
#include "Line.h"
using namespace std;
CartesianPoint::CartesianPoint()
{
x = 0;
y = 0;
}
CartesianPoint::CartesianPoint(double xx, double yy)
{
x = xx;
y = yy;
}
CartesianPoint p1;
CartesianPoint p2;
CartesianPoint p3;
CartesianPoint p4;
void CartesianPoint::test(){
p1.set(1.2,2.2);
p2.set(8.2,68.2);
p3.set(9.8,50.2);
p4.set(11.2,6.2);
p1.print();
p2.print();
p3.print();
p4.print();
p1.print();
}
void CartesianPoint::set(double xx,double yy)
{
x = xx;
y = yy;
}
double CartesianPoint::getx()
{
double temp;
temp = x;
return temp;
}
double CartesianPoint::gety()
{
double temp;
temp = y;
return temp;
}
void CartesianPoint::print()
{
cout<<"The point is: ("<<getx()<<", "<<gety()<<")"<<endl<<endl;
}
CartesianPoint::~CartesianPoint()
{
}
--------------------------------------------
#ifndef LINESEGMENT_H
#define LINESEGMENT_H
#include "CartesianPoint.h"
#include "Line.h"
class CartesianPoint;
//class Line;
class LineSegment : public CartesianPoint {
public:
LineSegment(); // default constructor
LineSegment(CartesianPoint V1, CartesianPoint V2);
LineSegment(CartesianPoint V1, CartesianPoint V2,
CartesianPoint V3, CartesianPoint V4);
double getMidPoint();
CartesianPoint midPoint();
double getPerpendicularBisector();
double perpendicularBisector();
double getSlope();
void printLine();
static void test();
virtual ~LineSegment();
protected:
double m;
double b;
CartesianPoint p1;
CartesianPoint p2;
CartesianPoint p3;
CartesianPoint p4;
// double m1;
// double m2;
// double slopeLine1;
// double slopeLine2;
// Cartesian X1;
// Cartesian X2;
// Cartesian Y1;
// Cartesian Y2;
}; // end clas LineSegment
#endif
---------------------------------------------------
#include <iostream>
#include <iomanip>
#include <cmath>
#include "stdafx.h"
#include "CartesianPoint.h"
#include "LineSegment.h"
using namespace std;
LineSegment::LineSegment()
{
m = 0;
b = 0;
}
LineSegment::LineSegment(CartesianPoint V1, CartesianPoint V2)
{
p1 = V1;
p2 = V2;
m = 0;
b = 0;
}
LineSegment::LineSegment(CartesianPoint V1, CartesianPoint V2,
CartesianPoint V3, CartesianPoint V4)
{
p1 = V1;
p2 = V2;
p3 = V3;
p4 = V4;
m = 0;
b = 0;
}
CartesianPoint p1;
// LineSegment L1(CartesianPoint(1,1), CartesianPoint(1,1);
void LineSegment::test()
{
}
double LineSegment::getSlope()
{
double temp;
temp = m;
return temp;
}
void LineSegment::printLine()
{
}
LineSegment::~LineSegment()
{
}
-----------------------------------------------------