Forum huvudsida -> Programmering -> C++, I/O?
Sidor: 1
olle | 13:46 - 13:e Augusti 2006 | Post #1 | |
Medlem Inlägg: 57 Skicka PM |
Hej igen. Har kommit till filhantering och undra om jag kan få lite hjälp. Jag vet att det finns istream & ostream som hanterar strömmar(vad de nu innebär). Och det finns ofstream & ifstream som hanterar filer.
Min fråga är varför räcker det inte med och bara använda ifsream & ofstream när det andå fungera med detta:
Det jag inte förstår varför i en uppgift så har man deklarerat ifstream & ofstream i main() och sen använt istream & ostream som funktionsparametrar?? ,,r det pga att istream är bas till ifstream och ej kan användas till och deklarera? Tror det blev lite snurrigt. Men hoppas ni fattar vad jag menar. ,,r helt enkelt lite förvirrad. ha de gött ------------------------- Ingen signatur! |
Lajnold | 16:41 - 13:e Augusti 2006 | Post #2 | |
Medlem Inlägg: 65 Skicka PM |
Det är för att inte begränsa sig till filer, eller ifstream/ofstream-objekt. Genom att använda istream och ostream som typer så kan alla strömmar ärvda därifrån användas som argument till funktionen. Ditt exempel skulle inte ha fungerat om det skulle ha stått ofstream istället för ostream i funktionen eftersom cout är av typen ostream, inte ofstream. ------------------------- Ingen signatur! |
olle | 18:19 - 13:e Augusti 2006 | Post #3 | |
Medlem Inlägg: 57 Skicka PM |
börjar fatta lite bättre med din föklaring Det jag förstått nu är som tumregel så brukar man deklarera med ifstream och ofstream tex i main() sen använda sig utav istream och ofstream i funktionsparameter för att kunna använda sig utav alla ärvda klasser som du nämnde, stämmer det? Sen ordet strömmar, förstår jag inte riktigt. ,,r det samma sak som filer kanske? tack för hjälpen ------------------------- Ingen signatur! |
Lajnold | 18:55 - 13:e Augusti 2006 | Post #4 | |
Medlem Inlägg: 65 Skicka PM |
Anledningen till att man vanligtvis använder ofstream eller ifstream istället för ostream och istream är att ostream och istream inte har rätt funktionalitet. fstream-klasserna ärver av ostream och istream, och lägger sedan till funktioner för att underlätta filhantering. Att man använder ostream/istream som argument istället för ofstream/ifstream tror jag vanligtvis beror på att man vill kunna skicka cout eller cin som argument. Men det du skrev stämmer. Det är alltså för att kunna skicka både (o/i)stream och (of/if)stream. Och andra ärvande klasser. Och strömmar är vanligtvis filer, men kan nog egentligen vara allt som man skickar information till som sedan vidarebefodrar den. Det jag skriver är inte nödvändigtvis helt rätt. Delar av det är vad jag har läst, och hur jag minns dessa saker. Andra är hur jag tror det är, baserat på andra kunskaper gällande programmering. ------------------------- Ingen signatur! Senast redigerad 19:06 - 13:e Augusti 2006 |
olle | 19:03 - 13:e Augusti 2006 | Post #5 | |
Medlem Inlägg: 57 Skicka PM |
tack för informationen. Fick lite panik innan pga att det finns så många klasser av nästan samma namn Men nu förstår jag iallfall ha de gött ------------------------- Ingen signatur! |
Sidor: 1
Forum huvudsida -> Programmering -> C++, I/O?
Du får inte posta i den här tråden | Till toppen
Datum
2024-03-29 02:26
Vecka: 13
Besökare
Inloggade: 0
Gäster: 605
Medlemmar
Medlemmar: 53576
Forum
Senaste inlägget: HAHA MÄNNISKAN LEVER ÄN (13:45 - 18:e Januari 2019, av Hetzz)
Wiki
Senaste ändringen:
3D (rev: 1, tid: 09:40 - 13:e November 2015)
Chatt
#blinkenlights @ Libera.Chat
Gratis shellkonton för IRC, webbsidor mm.