Не могу получить значение переменной класса

Имеется следующие задание.

//Задание 7.  Решите с помощью классов следующую задачу:
    //даны две бочки известного объема. В одной бочке в начальный момент
    //времени содержится спирт (96%), в другой – вода.
    //Кружкой емкостью 1л переливаем итеративно содержимое из одной бочки
    //в другую следующим способом: на каждой итерации
    //зачерпнули из первой бочки -> вылили во вторую
    //зачерпнули из второй бочки -> вылили в первую.
    //Требуется определить номер итерации, на которой концентрация спирта в
    //первой бочке станет меньше 50%.

        cout << "Задание 7 \n" << endl;
    
    Bochka spirt(5, 96);
    Bochka water(5, 0);
    int sum = 0; // счётчик итераций
    int Vkr = 1; // объём кружки

    while(/*концентрация спирта в бочке*/ spirt.prSpirt() > 50)
    {
        sum+=1;
        
        spirt.Pereliv(water, Vkr); //или spirt.Pereliv(water, объем_кружки);
        spirt.PrintBochka();
        water.Pereliv(spirt, Vkr); // аналогично
        spirt.PrintBochka();
    }
    
    std::cout << "номер итерации = " << sum << std::endl;

Создал класс.

    class Bochka
    {
        int VB=0;// объём бочки
        double pr=0;// процент спирта 
    
    public:
    
        Bochka(int a, double b);// конструктор с параметрами
        
        double prSpirt(); //процент спирта в бочке
    
        Bochka Pereliv(Bochka& x, int& y);
    
    };

Определил всё.

    //Bochka::Bochka() // конструктор без параметров
    //{
    //  VB = 0;
    //  pr = 0;
    //}
    Bochka::Bochka (int a, double b) // конструктор с параметрами
    {
        int VB = a;   // объём бочки
        double pr = b; // процент спирта 
    }
    
    //Bochka::Bochka(Bochka& other)// конструктор копирования
    //{
    //  pr = other.pr;
    //  VB = other.VB;
    //}
    
    double Bochka::prSpirt() //процент спирта в бочке
    {
        
        return this->pr;
    }
    
   

     Bochka Bochka::Pereliv(Bochka& x, int& y)
        {
            pr = ((pr * VB) + (y * x.pr)) / (VB + y);
            VB = VB;
            return *this;// возвращаем адрес объекта для которого вызван метод
        }

Метод prSpirt() не возвращает значение переменной класса. Подскажите пожалуйста где ошибка?


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