не работает конструктор - окружность

класс окружность Параметры: координаты центра, радиус. Методы: процедура инициализации полей, процедура вывода на экран значения полей объекта и функция, определяющая, находится ли некоторая точка с координатами x,y внутри окружности. Создал как смог, при компиляции выдаёт error: ‘x’ was not declared in this scope


#include <iostream>
#include <cmath>
using namespace std;
class Circle
{
private:
   double x;
   double y;
   double r;
public:
Circle();
   Circle(double x=2, double y=2, double r=5);
   
};

 int Main(){
  if (x*x+y*y<=r*r)
{
  cout << "Точка принадлежит окружности." << endl;
} 
else 
{
  cout << "Точка не принадлежит окружности." << endl;
}
return 0;
 }

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

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

у вас функция int Main() не является методом класса (находится снаружи) и следовательно не знает ничего о переменных x, y, r, однако вы их используете в данной функции

class Circle
{
private:
    double x;
    double y;
    double r;
public:
    Circle();
    Circle(const double x0=2, const double y0=2, const double r0=5);

    int Main();   
};

int Circle::Main(){
    if (x*x+y*y<=r*r)
    {
        cout << "Точка принадлежит окружности." << endl;
    } 
    else 
    {
        cout << "Точка не принадлежит окружности." << endl;
    }
    return 0;
}

правда подозреваю что это Main(), которая main() обычно :)

P.S.

class Circle
{
private:
    double x;
    double y;
    double r;
public:
    Circle();
    Circle(const double x0=2, const double y0=2, const double r0=5);

    void show();   
};

Circle::Circle()
    : x(0), y(0), r(0)
{}

Circle::Circle(const double x0, const double y0, const double r0)
    : x(x0), y(y0), r(r0)
{}

int Circle::show(){
    if (x*x+y*y<=r*r)
    {
        cout << "Точка принадлежит окружности." << endl;
    } 
    else 
    {
        cout << "Точка не принадлежит окружности." << endl;
    }
    return 0;
}

и использование в основном коде, например так:

Circle obj(10, 20, 5);
obj.show();
→ Ссылка