Создать класс 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 шт):
Вы должны хотя бы указывать, о каких ошибках идет речь (что говорит компилятор, что вы хотели 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-функции (см. фрагмент кода выше)?! Которая по определению не возвращает ничего! "Выведи мне ничто" - вот как это выглядит...
Исправите эти - ошибки - будет компилироваться. Будет ли работать - вопрос уже другой, на верность с этой точки зрения не смотрел (да вы и не спрашивали).