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

zbior class w c++

Object Storage Arubacloud
0 głosów
168 wizyt
pytanie zadane 19 stycznia 2020 w C i C++ przez arturaspl Nowicjusz (120 p.)
edycja 20 stycznia 2020 przez Patrycjerz

Czesc.
mam sobie klase:

class Cechy
{
public:
    string imie;
    int rok_urodzenia;
    int miesiac_urodzenia;
    int dzien_urodzenia;
    string nazwa_dnia_urodzenia;
    string znak_zodiaku;
    char plec;
    string horoskop_link;
    bool blad_danych;
};
Cechy *pFunboy; //deklaracja wskaznika do obiektu

i teraz tak:
importuje dane z pliku. danych jest kilka setek. po sprawdzeniu poprawnosci danych kazdego rekordu chce je "wrzucic" do obiektu i z obiektu wurzucic do pliku.
aby uniknac kilkusetkrotnego otwierania i zamykania pliku chcialbym zwalidowane dane wsadzic do  "tablicy obiektow", gdzie numer wiersza bedzie numer kolejny z pliku, a po przetworzeniu wszystkich danych raz otworzych plik i przy pomocy petli zapisac wszystkie dane do pliku po czym plik zamknac.

pytanie jak to zrobic? chodzi mi zwlasza o utworzenie tej tablicy obiektow... czy to w ogole jest mozliwe?

Artur

1
komentarz 19 stycznia 2020 przez tkz Nałogowiec (42,000 p.)
Pytanie czy potrzebujesz tablicy by trzymać te obiekty. Możesz również wczytywać i walidować dane w pętli

2 odpowiedzi

+1 głos
odpowiedź 19 stycznia 2020 przez Smooth Użytkownik (900 p.)

Najlepiej i najbezpieczniej jest użyć vectora aby tworzyć tablicę zmiennych. Jeżeli utworzysz tablice Klasa Obiekt[10] możesz mieć później problemy. 
Załóżmy, że twój program będzie musiał usunąć zmienna[7]. Będziesz musiał usunąć z niej wszystkie dane, następnie z zmienna[8] wrzucić wszystko do zmienna[7] itd. (przecież nie zostawisz jej pustej. Marnowanie pamieci). Oczywiście zabiera ci to również możliwość dynamicznego alokowania pamięci. 

 

vector<Cechy> tabCechy; // Tworzymy dynamiczna tablice obiektow
Cechy x; // tworzymy obiekt klasy cechy "x"
x.imie = "Jan"; // wpisujemy do niego imie
tabCechy.push_back(x); // wrzucamy x do tablicy
cout<<tabCechy[0].imie<<endl; // Tablica zaczyna sie od 0.

 

komentarz 20 stycznia 2020 przez edwardkraweznik Dyskutant (9,930 p.)
Najlepiej i najbezpieczniej to wykminić sobie jakieś rozwiązanie w pętli, jak napisał kolega tkz wyżej.
komentarz 20 stycznia 2020 przez Smooth Użytkownik (900 p.)
Napisałem, że najbezpieczniej jest uzyć vectora do stworzenia tablicy obiektów ( czyli to o co prosi autor posta ). Jasne, że dużo prościej jest uzyć pętli do zrobienia tego zadania.
komentarz 20 stycznia 2020 przez edwardkraweznik Dyskutant (9,930 p.)
No to zobacz: Kształt pisma arturaspl wskazuje, że tworzy on obiekty na podstawie pliku (coś takiego uzasadnione byłoby gdyby tymi obiektami były zakładki w aplikacji gui, player lub mob gdy piszemy coś z użyciem sfmla, itp...

Ale nie w przypadku gdy wykonujemy jakieś operacje na stringach. Coś takiego powinno się robić w pętli, o czym napisał kolega tkz. owszem można to robić w jakiejś metodzie jakiejś klasy. Ale tutaj nie wiemy jak ta aplikacja działa...

Ja założyłem, że arturaspl się poprostu uczy obiektowego podejscia...

Patrząc na ten wątek to ani ty ani ja nie mieliśmy  racji... miał ją tkz (tak się powinno pisać operacje na stringach)
0 głosów
odpowiedź 19 stycznia 2020 przez edwardkraweznik Dyskutant (9,930 p.)
Nazwaklasy zmienna[10]; <--- tablica obiektów
komentarz 19 stycznia 2020 przez arturaspl Nowicjusz (120 p.)
dziekuje.

Podobne pytania

0 głosów
2 odpowiedzi 453 wizyt
0 głosów
2 odpowiedzi 617 wizyt
0 głosów
2 odpowiedzi 232 wizyt

92,555 zapytań

141,403 odpowiedzi

319,557 komentarzy

61,940 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!

...