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
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)
{
...
}