DObrz den. Mam tridu ve ktere pretezuji operator [ ], vsechno funguje ... vytvorim tridu... pozadam mojeTrida[32], ... Chci se zeptat jestli by neslo udelat mojeTrida[2][16] ( alternativa je mojeTrida[2*16], ale to je celkem neprehledne ... - pro me). Moc diky za vsechny rady. Janek.
Fórum › C / C++
Pretizeni [] ....
Zkus to ;) Ale asi to nepůjde, bude to chápat že [16] patří k 3. položce pole mojeTrida. Zkus přetížit operátor ?: abys mohl předat dvě hodnoty, jestli ti jde o tohle. Mohu se zeptat, jakého bude operátor účelu (co přesně má té třídě dávat)?
To janek : Da sa to. Len operator[](int) tvojej triedy musi vracat nieco, pre co ma zmysel volat operator[] (t.j. moze vracat napr nejaky pointer na pole alebo uplne iny objekt ktory ma definovany operator[])
A uplne nakoniec by to malo vracat referenciu.
Pretoze nieco ako a[1][2] vidi kompilator ako nieco ako (a.operator[](1)).operator[](2);
Zjistit počet nových příspěvků
Přidej příspěvek
Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
Uživatelé prohlížející si toto vlákno
Uživatelé on-line: 0 registrovaných, 18 hostů
Podobná vlákna
Přetížení [] — založil koudiss
Přetížení fcí — založil !o!
Přetížení operátoru ^ — založil TauWich
Pretizeni operator[] — založil koudis
Moderátoři diskuze