не работает конструктор - окружность
класс окружность Параметры: координаты центра, радиус. Методы: процедура инициализации полей, процедура вывода на экран значения полей объекта и функция, определяющая, находится ли некоторая точка с координатами 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();