C++-ban a getline valójában egy függvény vagy egy tagfüggvény?
Figyelt kérdés
Arra gondoltam, hogyha nem sima függvény akkor mondjuk a cin tagfüggvénye.2017. júl. 26. 21:25
3/6 anonim ![*](//static.gyakorikerdesek.hu/p/vsz2.png)
![*](//static.gyakorikerdesek.hu/p/vsz2.png)
![*](//static.gyakorikerdesek.hu/p/vsz2.png)
![*](//static.gyakorikerdesek.hu/p/vsz2.png)
válasza:
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
Kezdjük ott, hogy a getline nem C++ függvény, hanem C. C-ben pedig nincs objektum orientáltság. Ez szerintem kellőképpen körülírja a választ.
4/6 A kérdező kommentje:
Igen, de van egy cin.getline() is. Volt valami értelme C++-ban csinálni egy cin.getline()-t is? A kettő tök ugyanaz?
2017. júl. 29. 16:43
5/6 A kérdező kommentje:
Rosszul fogalmaztam. A kettő ugyanazt csinálja?
2017. júl. 29. 16:45
6/6 anonim ![*](//static.gyakorikerdesek.hu/p/vsz2.png)
![*](//static.gyakorikerdesek.hu/p/vsz2.png)
![*](//static.gyakorikerdesek.hu/p/vsz2.png)
![*](//static.gyakorikerdesek.hu/p/vsz2.png)
válasza:
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
Nem egészen. Az std::cin.getline() C-féle karaktertömbbel dolgozik, míg az std::getline() std::string-el. Az utóbbi sokkal kényelmesebb, mivel leveszi a válladról a manuális bufferállítgatás terhét. A cin.getline() leginkább történelmi okokból maradt a nyelvben, és alapvetően nem tud std::string-be olvasni. Ennek egyébként egyszerű tervezési oka van: ha lenne olyan változata a függvénynek, ami std::string paramétert fogad, akkor az std::istream osztálynak látnia kéne az std::string osztályt, magyarán függővé tenné az std::istream osztályt az std::stringtől. Ezt pedig nem akarták, ezért ez a 'free function', az std::getline intézi a stringekkel való munkát.
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!
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!