При компиляции данная программа выдает ошибку "1>C:\Users\chess\source\repos\Complex(project)\Complex(project)\Complex.cpp(34): error C4700: использована неинициализированная локальная переменная "real"". Программа: //Complex.h
#pragma once
namespace ComplexLib {//Формирование пространства имён для работы с комплексными числами
 template <typename T>
 class Complex {
 private:
  T real;
  T imag;
 public:
  Complex(T real = 0, T imag = 0);
  //Геттеры
  T getreal() const;
  T getimag() const;
  //Сеттеры
  void setreal(T real);
  void setimag(T imag);
  //Арифметика
  Complex<T> operator+(const Complex<T>& number) const;
  Complex<T> operator-(const Complex<T>& number) const;
  Complex<T> operator*(const Complex<T>& number) const;
  Complex<T> operator/(const Complex<T>& number) const;
  T abs() const;//Модуль
  Complex<T> pow(int value) const;//Степень
  Complex<T> sqrt() const;//Квадратный корень
 };
} //Complex.cpp
#include "Complex.h"
#include <cmath>
namespace ComplexLib {
    template <typename T>
    Complex<T>::Complex(T real, T imag) : real(real), imag(imag) {}
    template <typename T>
    T Complex<T>::getreal() const {
        return real;
    }
    template <typename T>
    void Complex<T>::setreal(T r) {
        real = r;
    }
    template <typename T>
    T Complex<T>::getimag() const {
        return imag;
    }
    template <typename T>
    void Complex<T>::setimag(T i) {
        imag = i;
    }
    template <typename T>
    Complex<T> Complex<T>::operator+(const Complex<T>& number) const {
        return Complex<T>(real + number.real, imag + number.imag);
    }
    template <typename T>
    Complex<T> Complex<T>::operator-(const Complex<T>& number) const {
        return Complex<T>(real - number.real, imag - number.imag);
    }
    template <typename T>
    Complex<T> Complex<T>::operator*(const Complex<T>& number) const {
        T real = real * number.real - imag * number.imag;
        T imag = real * number.imag + imag * number.real;
        return Complex<T>(real, imag);
    }
    template <typename T>
    Complex<T> Complex<T>::operator/(const Complex<T>& number) const {
        T divisor = number.real * number.real + number.imag * number.imag;
        if (divisor != 0) {
            T real = (real * number.real + imag * number.imag) / divisor;
            T imag = (imag * number.real - real * number.imag) / divisor;
            return Complex<T>(real, imag);
        }
        throw "Division by zero!";
    }
    template <typename T>
    T Complex<T>::abs() const {
        return std::sqrt(real * real + imag * imag);
    }
    template <typename T>
    Complex<T> Complex<T>::pow(int value) const {
        T r = std::pow(abs(), value);
        T theta = std::atan2(imag, real);
        T real = r * std::cos(value * theta);
        T imag = r * std::sin(value * theta);
        return Complex<T>(real, imag);
    }
    template <typename T>
    Complex<T> Complex<T>::sqrt() const {
        T r = std::sqrt(abs());
        T theta = std::atan2(imag, real);
        T real = r * std::cos(theta / 2);
        T imag = r * std::sin(theta / 2);
        return Complex<T>(real, imag);
    }
} //Main.cpp
//Main.cpp
#include "Complex.cpp"
#include <iostream>

using namespace ComplexLib;

int main() {
    try {
        Complex<double> c1(2.5, -1.7);
        Complex<double> c2(0, 0);

        // Взаимодействие с классом через геттеры и сеттеры
        std::cout << "c1: " << c1.getreal() << (c1.getimag() < 0 ? " - " : " + ") << std::abs(c1.getimag()) << "i" << std::endl;
        c1.setreal(3.5);
        c1.setimag(-2.3);
        std::cout << "Modified c1: " << c1.getreal() << (c1.getimag() < 0 ? " - " : " + ") << std::abs(c1.getimag()) << "i" << std::endl;

        // Операции над комплексными числами
        Complex<double> sum = c1 + c2;
        Complex<double> diff = c1 - c2;
        Complex<double> composition = c1 * c2;
        Complex<double> division = c1 / c2;

        std::cout << "summ: " << sum.getreal() << (sum.getimag() < 0 ? " - " : " + ") << std::abs(sum.getimag()) << "i" << std::endl;
        std::cout << "diff: " << diff.getreal() << (diff.getimag() < 0 ? " - " : " + ") << std::abs(diff.getimag()) << "i" << std::endl;
        std::cout << "composition: " << composition.getreal() << (composition.getimag() < 0 ? " - " : " + ") << std::abs(composition.getimag()) << "i" << std::endl;
        std::cout << "division: " << division.getreal() << (division.getimag() < 0 ? " - " : " + ") << std::abs(division.getimag()) << "i" << std::endl;

        double abs = c1.abs();
        std::cout << "abs of c1: " << abs << std::endl;

        Complex<double> power = c1.pow(3);
        std::cout << "c1 to the power of 3: " << power.getreal() << (power.getimag() < 0 ? " - " : " + ") << std::abs(power.getimag()) << "i" << std::endl;

        Complex<double> square = c1.sqrt();
        std::cout << "Square root of c1: " << square.getreal() << (square.getimag() < 0 ? " - " : " + ") << std::abs(square.getimag()) << "i" << std::endl;
    }
    catch (const char* message) {
        std::cerr << "Error: " << message << std::endl;
    }
    return 0;
}