c++ operatory

0

witam, do mojej klasy Polynomial mam dodać operatory [] - zwraca współczynnik i () - zwraca wartość
Domyślam się że chodzi o przeciążenie operatorów ale nigdy tego nie używałem rzuci ktoś kilka wskazówek ? :)

0

ok dzięki,
mam jeszcze pytanie co do operatora mnożenia: _zwracany_typ_ operator*(const _typ_&);

nie mam problemu z mnożeniem wielomianu przez wielomian, a co zrobić zebym mógł mnożyć przez liczbę ? bo funkcja j.w. oczekuje typ wielomian a nie np. int czy double ?

2

Jeśli int ma być z prawej strony, to przecież żaden problem.

class typ
{
    typ operator *(int b)
    {
        ...
    }
};

Jeśli int ma być z lewej strony, operator taki musi być funkcją globalną.

typ operator *(int a, const typ &b)
{
   ...
}

Możesz go też zdefiniować w klasie ze słowem friend, wtedy będzie miał dostęp do pól prywatnych (ale nadal będzie tak naprawdę funkcją globalną, nie członkiem klasy).

class typ
{
    friend typ operator *(int a, const typ &b)
    {
       ...
    }
};

albo:

class typ
{
    friend typ operator *(int a, const typ &b);
};

typ operator *(int a, const typ &b)
{
    ...
}

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