No objects appear in main.cpp n1 and n2 type Number: no matching function for call to 'Number::Number()'



  • Main.cpp

    #include "class_number.hpp"
    #include <iostream>
    

    int main(void)
    {
    Number n1;
    Number n2;

    }

    In class_number.cpp

    #include "class_number.hpp"
    //конструктор по умолчанию
    Number::Number(double a, double b)
    {
    a_ = new double(a);
    b_ = new double(b);
    }
    //конструктор копирования
    Number::Number(const Number &other)
    {
    a_ = new double(other.a_);
    b_ = new double (
    other.b_);
    }
    //деструктор
    Number::~Number()
    {
    delete a_;
    delete b_;
    }
    Number Number :: operator + (Number& add)
    {
    double real = *a_+ *add.a_;
    double img = *b_+ *add.b_;
    return Number (real, img);
    }
    Number Number ::operator - (Number& sub)
    {
    double real = *a_ - *sub.a_;
    double img = *b_ - *sub.b_;
    return Number (real, img);
    }
    Number& Number:: operator = (Number& num)
    {
    *a_ = *num.a_;
    *b_ = *num.b_;

    return *this;
    

    }

    In class_number.hpp

    #include <iostream>
    using namespace std;

    class Number{
    double* a_;
    double* b_;
    public:
    Number (double a, double b);// конструктор по умолчанию
    Number(const Number& n); //конструктор копированя
    ~Number();//деструктор
    Number operator + (Number& add);
    Number operator - (Number& sub);
    Number& operator = (Number& num);
    };



  • Designer Default - it's a designer. free The arguments, not the one on which the comment says "default designer" Where do you have one? ♪ ♪

    If you'd at least instead

    Number (//double a, double b);// конструктор по умолчанию
    

    It was written.

    Number (double a = 0.0, double b = 0.0);
    

    It would be different. ♪ ♪

    By the way, use for two. double two new double - that's bullying. It's taking a lot more memory than it's slower... Why would you want that?



Suggested Topics

  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2