Przeciążanie operatorów cpp, działania na wielomianach.

0
#ifndef Polynomial_h
#define Polynomial_h
class Polynomial
{
public:
   int Degree;
   double *Elements;
   Polynomial();
   Polynomial(double);
   Polynomial(Polynomial&);
   ~Polynomial();
   Polynomial operator=(double);
#include "Polynomial.h"
Polynomial::Polynomial():
   Degree(0)
{
   Elements = new double[1];
   Elements[0]=0;
}
Polynomial::Polynomial(double inValue):
   Degree(0)
{
   Elements = new double[1];
   Elements[0] = inValue;
}
Polynomial::Polynomial(Polynomial &nowy):
   Degree(nowy.Degree)
{
   if(&nowy != this) {
      Elements = new double[Degree+1];
      for(int i=0;i<=Degree;i++)
      {
         Elements[i] = nowy.Elements[i];
      }
   }
}
Polynomial Polynomial::operator=(double a){
   //clear_elements();
   Degree=0;
   Elements[0]=a;
   //reduction();
   return *this;
}
#include "Polynomial.h"
using namespace std;
int main(){
Polynomial r = 0.0;// chodzi mi o ta linijke
return 0;
}

Mam problem z tym kodem chciałbym aby zaznaczona linijka działała jak r(0.0) - tzn. używała konstruktora domyślnego i wykonywała r.Elements[0] =0.0 albo używala konstruktora Polynomial(double). Mam inne operacje na wielomianach napisane i przeciążone ale z tym nie mogę sobie poradzić z jakiegoś powodu. Pomoże ktoś? :)

1

wywal to: Polynomial Polynomial::operator=(double a){ a zadziała.

0

właśnie w tym problem, że nie jak usunę to wywali mi błąd "error: no matching function for call to 'Polynomial::Polynomial(Polynomial)";

0

Zacznij od sklejenia całości w jeden plik. Jak się nauczysz robić to w jednym to potem szybko nauczysz się dzielić na pliki. Teraz walczysz z dwoma demonami na raz.

0

Spróbuję jak nic mi to nie pomoże to się odezwę.

0

Konstruktor z parametrem double może zostać i będzie to działać tylko wtedy koniecznie musisz poprawić operator= bo to co jest teraz jest ŹLE. Jeżeli w klasie alokujesz pamięć dynamicznie to konstruktor przypisania powinien przyjmować stałą referencje do obiektu danej klasy czyli prototyp

Polynomial& Polynomial::operator=(const Polynomial& tmp )

1 użytkowników online, w tym zalogowanych: 0, gości: 1