• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Jak to jest z tymi nazwami ?

Object Storage Arubacloud
0 głosów
216 wizyt
pytanie zadane 18 kwietnia 2016 w C i C++ przez 0xf Dyskutant (8,180 p.)
Czesc, wlasnie pisze w c++ uzywam fstream'u.

Mam sobie obiekt fstream jako zmienna w mojej klasie domyslnie plik utworzony ma nazwe forma.txt(Konstruktor sie zajmuje tworzeniem i otwieraniem pliku). Nasuwa mi sie pytanie bo kiedy juz bede na tej fazie kodowania ze bede tworzyl fabryki wlasnych obiektow to co bede mial miliard plikow forma.txt no nie to nie trzyma sie kupy.

Chcialbym zeby konstuktor sprawdzal nazwe swojego obiektu (tak jak jest nazwany w kodzie). Zalozmy ze mamy tablice moich obiektow o nazwie Obiekty[]; bedize to tablica dynamiczna.

Przechodzac do sedna jak zrobic zeby nazwa pliku byla NazwaKlasy+NazwaTablicy/AlboObiektu+(opcjonalnie)IndeksWTablicy.

PS: uzywam linuxa da rade zrobic zeby pliki danej tablicy obiektow wrzucalo mi do folderu ktory bedzie sie tworzyl wraz z tablica i bedzie nosil jej nazwe ?

1 odpowiedź

0 głosów
odpowiedź 19 kwietnia 2016 przez Sebastian Fojcik Nałogowiec (43,020 p.)

Najwidoczniej nie wiesz, że komputer nie zapamiętuje Twoich nazw dla zmiennych, które wpisujesz w kodzie. Kompilator i tak nazwie wszystko po swojemu. Coś w stylu: 0xF898B4. Po skompilowaniu programu, wszystkie Twoje nazwy przepadają.

Jeśli u Ciebie w programie utworzenie obiektu jakiejś Twojej klasy jest równoznaczne z utworzeniem pliku na dysku i obawiasz się na przyszłość, że będziesz tych obiektów miał "miliardy", to wymuś na samym sobie podanie nazwy pliku dla każdego obiektu. Skonstruuj konstruktor w taki sposób. Coś w ten deseń:

class Figura
{
    string nazwa;
public:
    Figura( string _nazwa )
        : nazwa( _nazwa )
    {}
}

Dzięki takiemu zabiegowi nie utworzysz obiektu bez podania nazwy pliku. Problem solved! (możesz mieć tylko mały kłopot, aby dynamicznie utworzyć tablicę takich obiektów)

A jeśli nadal to Cię nie satysfakcjonuje, to polecałbym zmienić koncepcję programu. Pomysł, że każdy obiekt posiada swój własny plik na dysku jest bardzo dziwny. Może to prowadzić do wielu problemów w przyszłości. Wystarczy, że 2 obiekty przypadkowo będą władać tym samym plikiem. Będą nawzajem nadpisywać sobie dane. W folderze po zakończonej pracy Twojego programu będzie panował istny chaos.

Jeśli masz wiele danych do zapisywania, to zapisuj wszystko w jednym pliku. Pisz techniką OO. Jedna klasa powinna zajmować się zapisywaniem do pliku konfiguracyjnego, a inne klasy powinny jej to zlecać. Hierarchia w programach Orientowanych Obiektowo jest niezwykle istotna. To co chcesz zrobić przypomina mi trochę jakąś prowizoryczną bazę danych, w której każdy jest swoim szefem i zapisuje się na dysku kiedy chce :-D

Nadal nie wiem co chcesz osiągnąć, ale cokolwiek to jest, ma mało wspólnego z poprawnym wykorzystywaniem obiektowości :-)

komentarz 19 kwietnia 2016 przez 0xf Dyskutant (8,180 p.)
Chciałbym zapisywać w pliku txt każdy osobny obiekt ponieważ będzie to o tyle mądry program że będzie zapamietywal co robił przed wyłączeniem samego siebie. Każdy obiekt wartości swoich zmiennych odczytywalby w konstruktorze a zapisywalby w destruktorze dlatego chcę wykorzystać te pliki. Jak mogę inaczej to osiągnąć bawić się w bazy danych?
komentarz 19 kwietnia 2016 przez 0xf Dyskutant (8,180 p.)
A klasa ma zlecać zapisywanie hmmm dosyć problematyczne bo jak mam wartości tysięcy obiektów różnych typów zapisać w jednym pliku?
komentarz 19 kwietnia 2016 przez 0xf Dyskutant (8,180 p.)
Mniej wiecej chce zrobic jak tutaj tylko zeby nazwa byla jak powiedzialem http://www.cplusplus.com/forum/beginner/32200/

Podobne pytania

0 głosów
2 odpowiedzi 909 wizyt
pytanie zadane 13 sierpnia 2017 w Systemy operacyjne, programy przez Alex.Ironside Stary wyjadacz (14,900 p.)
0 głosów
4 odpowiedzi 16,790 wizyt
0 głosów
0 odpowiedzi 166 wizyt
pytanie zadane 5 października 2020 w C i C++ przez user4132 Nowicjusz (170 p.)

92,565 zapytań

141,416 odpowiedzi

319,598 komentarzy

61,950 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...