przeciążenie przecinka

Dumel
Użytkownik
Użytkownik
Posty: 2000
Rejestracja: 19 lut 2008, o 17:35
Płeć: Mężczyzna
Lokalizacja: Stare Pole/Kraków
Podziękował: 60 razy
Pomógł: 202 razy

przeciążenie przecinka

Post autor: Dumel »

nie rozumiem jak działa przeciążony operator, w poniższym kodzie w funkcji test_int():
Ukryta treść:    

Kod: Zaznacz cały

Poly<int> p;                                    //(97)
  p=-8,-2,1;                                      //(98)
skąd ten przecinek wie na rzecz którego obiektu jest wywoływany? jedyna możliwość która mi przychodzi do głowy to niejawne tworzenie anonimowego obiektu ale to by było trochę dziwne.
Awatar użytkownika
paladin
Użytkownik
Użytkownik
Posty: 148
Rejestracja: 24 sty 2005, o 22:15
Płeć: Mężczyzna
Lokalizacja: Kraków
Pomógł: 19 razy

przeciążenie przecinka

Post autor: paladin »

Priorytet operatora "," jest niższy niż "=". Wyrażenie nawiasuje się zatem tak:

Kod: Zaznacz cały

(((p=8),-2),1);
Wykonuje się przypisanie, zwraca referencję na wielomian p (wtedy już p(x) = 8), wykonuje się działanie (p,-2), zwraca referencję na p....
Dumel
Użytkownik
Użytkownik
Posty: 2000
Rejestracja: 19 lut 2008, o 17:35
Płeć: Mężczyzna
Lokalizacja: Stare Pole/Kraków
Podziękował: 60 razy
Pomógł: 202 razy

przeciążenie przecinka

Post autor: Dumel »

jeszcze jedno pytanko do tego samego kodu.
dlaczego wewnątrz funkcji klasy Poly można tworzyć obiekty klasy PolyAux, mimo że PolyAux ma prywatny konstruktor, a wiec konstruktor domyślny nie jest już tworzony?
z resztą nawet jak się stworzy jawnie prywatny konstruktor bezargumentowy to jest to możliwe.
Awatar użytkownika
paladin
Użytkownik
Użytkownik
Posty: 148
Rejestracja: 24 sty 2005, o 22:15
Płeć: Mężczyzna
Lokalizacja: Kraków
Pomógł: 19 razy

przeciążenie przecinka

Post autor: paladin »

Być może coś przegapiłem, ale nie rozumiem problemu. Poly jest "friend class" PolyAux, więc do zadeklarowanego konstruktora dostęp ma. Używa gdzieś innego niż ten zadeklarowany?
Dumel
Użytkownik
Użytkownik
Posty: 2000
Rejestracja: 19 lut 2008, o 17:35
Płeć: Mężczyzna
Lokalizacja: Stare Pole/Kraków
Podziękował: 60 razy
Pomógł: 202 razy

przeciążenie przecinka

Post autor: Dumel »

wiem wiem, już zanim przeczytałem odpowiedź zorientowałem się że tam jest friend
ODPOWIEDZ