Я создал полиномиальный класс, но хочу перегрузить оператор индексации, который будет использоваться в качестве установщика, например, myPolyObject[0] = 2.5, но при попытке его перегрузки выдает ошибку.
class Polynomial
{
public:
Polynomial();
Polynomial(Polynomial&);
Polynomial(double* coefficient, int size);
~Polynomial() { delete [] polynomial ; }
double operator [] (int exponent) const;
friend ostream& operator << ( ostream& , const Polynomial&);
Polynomial& operator = (const Polynomial&);
double evaluate(double x) const;
int getSize() const;
double operator [] (int exponent, double coefficient);
Polynomial& operator + ( Polynomial& );
Polynomial& operator + ( double x );
Polynomial& operator - (Polynomial&);
Polynomial& operator - (double x);
Polynomial& operator * (Polynomial&);
Polynomial& operator * (double x);
private:
double* polynomial;
};
В этом коде я хочу, чтобы двойной оператор [] (целая экспонента, двойной коэффициент) брал индекс (экспоненту) для массива и устанавливал значение этого индекса в значение двойного коэффициента.
double& operator[](int exponent)
. Вам нужно будет сделать так, чтобы оператор возвращал ссылку на значениеdouble
, в котором может быть сохранен коэффициент. - person Igor Tandetnik   schedule 25.06.2018double& operator[] (int exponent);
и просто сделайте так, какpolynomial[5] = 7.;
, как вы, вероятно, и предполагали. - person Aziuth   schedule 25.06.2018