circleContains2.cpp (Example of member function.)

#include <iostream>
#include <cmath>

using namespace std;

class Point
{
public:
  double x;
  double y;
};

class Circle
{
public:
  Point center;
  double radius;

  bool contains(Point & q);
};

// prototype
void read_point(const char * prompt, Point & p);
void read_circle(const char * prompt, Circle & c);
double compute_distance(Point & p1, Point & p2);

int main()
{
  Circle c;
  Point p;

  read_point("Enter point (x,y): ", p);
  read_circle("Enter circle (x,y,radius): ", c);

  double dist = compute_distance(p, c.center);
  if (dist <= c.radius) {
    cout << "Point is inside circle." << endl;
  }
  else {
    cout << "Point is not inside circle." << endl;
  }

  return 0;
}

void read_point(const char * prompt, Point & p)
{
  cout << prompt;
  cin >> p.x;
  cin >> p.y;
}

void read_circle(const char * prompt, Circle & c)
{
  cout << prompt;
  cin >> c.center.x;
  cin >> c.center.y;
  cin >> c.radius;
}

double compute_distance(Point & p1, Point & p2)
{
  double diffx = p1.x - p2.x;
  double diffy = p1.y - p2.y;
  double dist = sqrt(diffx*diffx + diffy*diffy);

  return(dist);
}

bool circle_contains(Circle & c, Point & q)
{
  double dist = compute_distance(c.center, q);
  if (dist <= c.radius) 
    { return(true); }
  else
    { return(false); }
}

// Class Circle member function
Circle::contains(Point & q)
{
  double dist = compute_distance(center, q);
  if (dist <= radius) 
    { return(true); }
  else
    { return(false); }
}
CSE 2122 material is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License. Source code for this website available at GitHub.