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
twonew double
- that's bullying. It's taking a lot more memory than it's slower... Why would you want that?