-
Data: 2011-04-15 16:17:57
Temat: Re: Carnegie-Mellon przestaje uczyc programowania obiektowego
Od: Jędrzej Dudkiewicz <j...@n...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]On 04/15/2011 06:05 PM, p...@p...onet.pl wrote:
>> On 04/15/2011 03:00 PM, fir wrote:
>
>>> nigdy sie nad tym nie zastanawialem ale nasuwa mi sie pytanie
>>> czy przypadkiem nie lepiej by bylo gdyby tych uchwytow nie bylo
>>>
>>> to jest oddzielna kwestia ale np co do plikow to mozna powiedziec
>>> ze nazwa pliku identyfikuje plik tak ze powstaje pytanie czy zamiast
>>> uzywac tych uchwytow
>>>
>>> h = openFile("yoman.txt");
>>> printToFile(h, "jedna rzecz dzis ustalmy");
>>> closeFile(h);
>>>
>>> nie lepiej byloby uzywac nazw
>>>
>>> openFile("yoman.txt");
>>> printToFile("yoman.txt", "jedna rzecz dzis ustalmy");
>>> closeFile("yoman.txt");
>>
>> W tym momencie uchwytem jest nazwa pliku. Jedyne, co "zyskałeś", to
>> strata na szybkości, bo tę nazwę trzeba rozwiązywać na obiekt w systemie.
>>
>> JD
>
> absolutnie nie, nazwa zastepuje uchwyt ale uchwytu nie ma,
> - plik i tak ma nazwe, i w podejsciu z uchwytami jest i nazwa
> i uchwyt - nowy byt ktory ma typ wartosc i rzadzace nim prawa
Absolutnie tak, plik ma nazwę, która jest niczym innym jak czytelną dla
człowieka nazwą. Uchwyt do zasobu jest po prostu rozwiązaną nazwą. Zwróć
uwagę, że te Twoje metody należałoby zaimplementować w C mniej więcej tak:
void openFile(char* name)
{
FILE *f = fopen(name, "w"); // załóżmy, że taki tryb
storeInGlobalTable(name, f); // zapisz nazwę zamapowaną na FILE
}
void printToFile(char* name, char* msg)
{
fprintf(getFromGlobalTable(name), "%s", msg);
}
void closeFile(char* name)
{
fclose(getFromGlobalTable(name));
storeInGlobalTable(name, NULL);
}
Cały czas "f", będące niczym innym jak uchwytem, jest potrzebne - tyle,
że zostało zakopane niżej.
JD
PS. Jest jeszcze alternatywna implementacja:
void openFile(char* name) { }
void closeFile(char* name) { }
void printToFile(char* name, char* msg)
{
FILE* f = fopen(name, "w");
fprintf(f, "%s", msg);
fclose(f);
}
Następne wpisy z tego wątku
- 15.04.11 16:20 Jędrzej Dudkiewicz
- 15.04.11 16:22 Andrzej Jarzabek
- 15.04.11 16:34 Jędrzej Dudkiewicz
- 15.04.11 16:50 gregorius
- 15.04.11 16:51 p...@p...onet.pl
- 15.04.11 16:59 Zbigniew Malec
- 15.04.11 17:05 p...@p...onet.pl
- 15.04.11 17:23 Zbigniew Malec
- 15.04.11 17:37 Zbigniew Malec
- 15.04.11 17:52
- 15.04.11 18:35 p...@p...onet.pl
- 15.04.11 19:12 gregorius
- 15.04.11 19:23 gregorius
- 15.04.11 19:25
- 15.04.11 19:50 Waldek M.
Najnowsze wątki z tej grupy
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
- Ada 2022 Language Reference Manual to be Published by Springer
- Press Release - AEiC 2023, Ada-Europe Reliable Softw. Technol.
- Ada-Europe - AEiC 2023 early registration deadline approaching
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2023
- Ile cykli zajmuje mnożenie liczb 64-bitowych?
Najnowsze wątki
- 2024-07-01 W-wa naklejki wjazd do centrum
- 2024-07-01 ładowarka zmarła
- 2024-07-01 Koder szuka pracy. Koduję w j.: Asembler, C, C++ (z Qt) i D.
- 2024-07-01 Kraków => Kierownik Działu Spedycji Międzynarodowej <=
- 2024-07-01 Białystok => Full Stack Web Developer (.Net Core, Angular6+) <=
- 2024-07-01 Berlin => Technical Rollouter (Radio Systems Software Installation and
- 2024-07-01 Warszawa => Key Account Manager <=
- 2024-07-01 Gdańsk => Programista Full Stack .Net <=
- 2024-07-01 Zabrze => Junior HelpDesk <=
- 2024-07-01 Warszawa => Key Account Manager <=
- 2024-07-01 Bielsko-Biała => Expert Migration Architect (Azure) <=
- 2024-07-01 Mini Netykieta polskich grup dyskusyjnych
- 2024-07-01 Re: Jak wypełnić polecenie francuskiego sądu blokowania niektórych zapytań DNS? Blokując Francję
- 2024-07-01 Re: Powtórne wezwanie na PO-komisję uzdrowi Ziobrę już w 10 dni
- 2024-07-01 CA -- problem z logowaniem