Mikor melyik operátor hívódik? (c++)
const double operator[](const int i) const
{
return v[i];
}
double& operator[](const int i ) {
return v[i];
}
Előző vagyok (most jutott eszembe)
Nem teljesen szabványos, de van amelyik fordító elfogadja a primitív tipusok operátorok definiálását. Ha jól emlékszem a tanulmányaimban akkor csak így lehet meghívni pl.: x.operator[5]
Két eljárást nem választ ketté a csupán visszatérési értékük típusa. Ha külön-külön elfogadná a fordító ezeket az operátor eljárásokat akkor egyszerre nem tudom elfogadná e (az előbbi mondat miatt), ha igen akkor mindig a második hívódna meg, az az erősebb. A 2. állhat értékadó utasítás bal oldalán is és állhat minden olyan helyen ahol az 1. állhatna.
Teszteld le hogy mikor melyik hívódik! (Jöjj rá hogy hogy lehet kideríteni! Persze ha lefordul egyáltalán, nekem nem fordul.)
nah, leteszteltem, utánanéztem:
"az osztályok tagfüggvényei és operátorai a konstans mivoltukban való különbözőség esetén is túlterhelhetők"
azaz a felső konstans objektumokra hívódik, az alsó meg nemkonstansokra
"az osztályok tagfüggvényei és operátorai a konstans mivoltukban való különbözőség esetén is túlterhelhetők"
Ezt benéztem, hogy ezek osztályok tagfüggvényei.(Nem látom az osztályokat.)
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!