Другие языки программирования и технологии

Создать класс типа круг. C++

Создать класс типа круг. Поля-данные: радиус, координаты центра. Функции-члены вычисляют площадь, длину окружности, устанавливают поля и возвращают значения. Функции члены установки полей класса должны проверять корректность задаваемых параметров (не равны нулю и не отрицательные). Функция печати.
class Shape2D {

public:

 virtual double getArea() = 0;
 virtual double getLength() = 0;
 virtual void print() {
  cout << "S = " << getArea() << ", ";
  cout << "L = " << getLength() << ".\n";
 }
};

class Circle: public Shape2D {

 static constexpr double PI = 3.14;

  double radius;
  double centerX, centerY;

public:

 Circle(double radius, double centerX, double centerY) {
  setRadius(radius);
  setCenterX(centerX);
  setCenterY(centerY);
 }

 double getRadius() { return radius; }
 void setRadius(double radius) {
  if (radius > 0) {
   this->radius = radius;
  }
 }

 double getCenterX() { return centerX; }
 void setCenterX(double centerX) {
  if (centerX > 0) {
   this->centerX = centerX;
  }
 }

 double getCenterY() { return centerY; }
 void setCenterY(double centerY) {
  if (centerY > 0) {
   this->centerY = centerY;
  }
 }

 double getArea() override {
  return PI * radius * radius;
 }

 double getLength() override {
  return 2 * PI * radius;
 }

 void print() override {
  cout << "Circle: ";
  cout << "R = " << radius << ", ";
  cout << "Center: " << "(" << centerX
   << ", " << centerY << "), ";
  Shape2D::print();
 }
};
Евгений Мясников
Евгений Мясников
1 530
Лучший ответ
Cубканов Александр спасибо. а как ее довести до ума?
class Круг {
dobule радиус, центр_абсцисса, центр_ордината;
public:
Круг (dobule радиус, dobule центр_абсцисса, dobule центр_ордината);
double площадь ();
double длина ();
void печать ();
};
PB
Pasha Bosco
15 498