Kezdőoldal » Számítástechnika » Programozás » Ha cout << "valami"; helyett...

Ha cout << "valami"; helyett cout. Operator<< ("valami") ;-t használok, akkor miért egy memóriacímet ír ki?

Figyelt kérdés
Csak érdekességképp próbálgattam, vajon valahogy meg lehet oldani, hogy ily módon írjuk ki a teljes szöveget? A cout.operator<<(*"valami"); pedig 118-at ír ki. Gondolom a 118 a v betű ascii kódja.

2018. jún. 7. 21:13
 1/3 anonim ***** válasza:
51%

Mert rosszul használod. Az operátorok nem objektumszintű metódusok, tehát nem a cout-on hívod meg őket, hanem paraméterül adod meg azt.


operator<<(cout, "valami");


Így működik. Hogy miért ír ki egy memóriacímet az első változatnál, azt én sem tudom.

2018. jún. 7. 21:57
Hasznos számodra ez a válasz?
 2/3 sharkxxx ***** válasza:

Az operátorok két helyen lehetnek definiálva. Osztályon belül és osztályon kívül.

Ha a cout<<"szoveg" alakot használod, akkor a kompiler dönti el, hogy az operátor melyik definiciója lesz meghíjva.

Ha a cout.operator<<("szoveg") alakot használod, akkor az osztályon belüli definíció fog meghívódni.

Ha a operator<<(cout, "szoveg") alakot használod, akkor az osztályon kívüli definíció fog meghívódni.

2018. jún. 7. 23:15
Hasznos számodra ez a válasz?
 3/3 A kérdező kommentje:
Köszi!
2018. jún. 8. 09:56

Kapcsolódó kérdések:




Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!