как инициализировать поля в конструкторе С++

Рейтинг: -2Ответов: 1Опубликовано: 17.06.2023

столкнулся с проблемой инициализации полей в конструкторе класса

class Circle {
private:
    Circle(double x, double y, double radius) {
        this->x = x;
        this->y = y;
        this->radius = radius;
        this->length = calculateLength();
        this->area = calculateArea();
    }
// дальше идут методы и куча ошибок что класс не имеет данных полей

выдает ошибку

'class Circle' has no member named 'x'

подскажите пожалуйста в чем проблема, буду очень благодарен за ответ

Ответы

▲ 0Принят

Ну, компилятор говорит: В классе Circle не объявлено поле x. А еще, конструктор приватный, что приведет ко еще одной ошибке компиляции.

class Circle {
public: // сделать конструктор публичным
    double x;
    double y;
    double radius;
    double length;
    double area;
    Circle(double x, double y, double radius) {
        this->x = x;
        this->y = y;
        this->radius = radius;
        this->length = calculateLength();
        this->area = calculateArea();
    }
    // ...
};