Kezdőoldal » Számítástechnika » Programozás » C++ programozóknak a shift...

C++ programozóknak a shift operátor kiíratásra használva nem furcsa?

Figyelt kérdés
Nekem elsőre nagyon furcsa volt. Ráadásul láncolva cout<<a<<b<<endl még furcsábban néz ki. És nem értem miért pont a shift operátort használják erre? Miért nem lehetne egy egyszerű print nevű függvény paraméterezve?

2015. júl. 28. 22:09
 1/8 anonim ***** válasza:
80%

C++ egyik előnye az operátor túlterhelés.


Szerintem senkinek se furcsa, én inkább örülök neki, hogy 2 karakterből megvan a debug üzi kiírása, és az std::endl kicsűrése pedig az fflush(stdout) hívással egyenértékű.


A POSIX printf(), putc() függvények úgyszintén működnek C++ alatt is, nem kötelező az std::cout használata.

2015. júl. 28. 22:17
Hasznos számodra ez a válasz?
 2/8 A kérdező kommentje:

Két karakter, de olvasni is ugyanolyan könnyű? Több dolognál szerintem vesszővel elválasztva olvashatóbb.


Ha printf-et használ valaki elcsűrheti a formátum sztringet, de a kérdés egy olyan print függvényre utal ami kiírná a paramétereket megfelelően.

2015. júl. 28. 22:23
 3/8 anonim ***** válasza:
57%

std::cout.operator<<(a);

std::cout.operator<<(b);

2015. júl. 28. 22:32
Hasznos számodra ez a válasz?
 4/8 anonim ***** válasza:

Hmm...


std::cout << a;


vagy


System.out.println(a) esetleg Console.WriteLine(a)?


Hát, szerintem ezutóbbi kettő kevésbé szép. Nem a háború és békét akarjuk újraírni :-))


Szóval nem furcsa, mert C++ programozóknak az operátor ugyanúgy egy függvény, ami csinálhat bármit :-)

2015. júl. 28. 22:36
Hasznos számodra ez a válasz?
 5/8 A kérdező kommentje:

>> Szóval nem furcsa, mert C++ programozóknak az operátor ugyanúgy egy függvény, ami csinálhat bármit


Az esetek 98%-ban az operátorok nem jelentenek ennyire mást. Mármint nekem a << shiftelést jelent alapból. És eléggé exotikus kódot lehet összehozni, ha valaki össze-vissza operátorokat ír felül függvények írása helyett.


Én értem a kevesebb gépelést, csak szinte mindenhol van egy függvény amit kiíratásra használsz és print*-nak hívnak.

2015. júl. 28. 22:58
 6/8 anonim ***** válasza:

# 5/5 Időpont ma 22:58


A C++ az összes input/output streamet "egyként kezeli", legyen az képernyő, fájl, áramfejlesztő, távíró vagy épp WC ülőke. Távíróra vagy WC ülőkére pedig hülyén hangzana az, hogy printelsz rá valamit. Ezért lett a << bevezetve.


Beolvasásnál ugyanez: Egy hangalapú inputnál hülyén hangzana a read(). :-)


"És eléggé exotikus kódot lehet összehozni, ha valaki össze-vissza operátorokat ír felül függvények írása helyett."

Nem függvény írás helyett, hanem mellett. Operátortúlterhelések egyéni osztályoknak kellenek.


Pl. Java-ban gyűlölöm, hogy egyesével meg kell írnom (és használnom) egy egyéni számtípusnak a négy alapműveletet, ahelyett hogy használnám a +-/* valamelyikét. Ne mondd, hogy nem szebb a+b-t írni a.plus(b) helyett. :-)

2015. júl. 28. 23:29
Hasznos számodra ez a válasz?
 7/8 anonim ***** válasza:
Nem fura. Megszokják.
2015. júl. 29. 11:46
Hasznos számodra ez a válasz?
 8/8 A kérdező kommentje:

> Beolvasásnál ugyanez: Egy hangalapú inputnál hülyén hangzana a read(). :-)


Még jó, hogy bináris adatbeolvasásnál write/read párost kell használni. Csak a formázott (emberileg olvasható) kimenetnél/bemenetnél kellenek ezek az << és >> operátorok.

2015. júl. 29. 19:24

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

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!