Создать класс Circle

Создать класс окружность Параметры: координаты центра, радиус. Методы: процедура инициализации полей, процедура вывода на экран значения полей объекта и функция, определяющая, находится ли некоторая точка с координатами x,y внутри окружности.

#include <iostream>
#include <cmath>
using namespace std;
class Circle
{
private:
   double x;
   double y;
   double r;
public:
Circle();
   Circle(double xC, double yC, double rad);
   void centre_dist(Circle & c);
};

Circle::Circle()
{
    cout << "Enter x coord: ";
    cin >> x;
    cout << "Enter y coord: ";
    cin >> y;
    cout << "Enter radius: ";
while (cin >> r && r < 0)
{
  cout << "Radius can't be negative\n";
  cout << "Enter radius: ";
}
}

Circle::Circle(double xC, double yC, double rad) : x(xC), y(yC), r(rad)
{
   if (r < 0)
{
   cout << "Radius can't be negative\n";
   cout << "Radius set to 0\n";
   r = 0;
}
}

void Circle::centre_dist(Circle & c)
{
  if (((x - c.x) * (x - c.x) + (y - c.y) * (y - c.y)) < r*r)
{
  cout << "Точка принадлежит окружности." << endl;
} 
else 
{
  cout << "Точка не принадлежит окружности." << endl;
}
int main(){
Circle c1;
Circle c2(0, 0, 5);
cout << "centre distance: " << c2.centre_dist(c1) << endl;
return 0;
}
}


Ответы (1 шт):

Автор решения: Harry

Вы должны хотя бы указывать, о каких ошибках идет речь (что говорит компилятор, что вы хотели etc).

По вашему коду. Если бы вы хоть чуть-чуть форматировали ваш код, то увидели бы

void Circle::centre_dist(Circle & c)
{
    if (((x - c.x) * (x - c.x) + (y - c.y) * (y - c.y)) < r*r)
    {
        cout << "Точка принадлежит окружности." << endl;
    }
    else
    {
        cout << "Точка не принадлежит окружности." << endl;
    }
    int main(){
        Circle c1;
        Circle c2(0, 0, 5);
        cout << "centre distance: " << c2.centre_dist(c1) << endl;
        return 0;
    }
}

что main() вы объявили внутри метода void Circle::centre_dist(Circle & c).

Далее - вы хотите выводить

cout << "centre distance: " << c2.centre_dist(c1) << endl;

Какое значение вы хотите вывести, если c2.centre_dist(c1) - это вызов void-функции (см. фрагмент кода выше)?! Которая по определению не возвращает ничего! "Выведи мне ничто" - вот как это выглядит...

Исправите эти - ошибки - будет компилироваться. Будет ли работать - вопрос уже другой, на верность с этой точки зрения не смотрел (да вы и не спрашивали).

→ Ссылка