Hirdetés
Hirdetés
Talpon vagyunk, köszönjük a sok biztatást! Ha segíteni szeretnél, boldogan ajánljuk Előfizetéseinket!
Új hozzászólás Aktív témák
-
dobragab
addikt
válasz
jattila48 #3058 üzenetére
Most már nekem is kicsit koncepcióhiba-szagú, persze simán lehet, hogy indokolt.
B ellátja a funkcióját, valamilyen adatokon dolgozik. Adsz neki egy ctort, ami az adattagjait darabonként inicializálja, és nem bűvészkedik a bináris adatokkal.
A bináris memóriaterületből olvasás, feldolgozhatóvá alakítás ilyen formában (pointer + méret) nem egy osztály dolga, hanem egy függvényé. Tipikusan egy statikus függvényé, ami megkapja fájlnevet, akármit, és visszaad érték szerint egy B-t. Én ebből csinálnék többet, attól függően, hogy fájl / registry / memória a forrás. Ezek hívják majd B adattagonként inicializáló konstruktorát. A statikus függvények meg lehetnek protected-ek, hogy a RAII-t ne lehessen kívülről zavarni, és hívhasd B / D ctorából. Írj B-nek move ctort, akár default is jó lehet.
Ezzel különválasztottad a program egyáltalán nem összetartozó részeit. B innentől önállóan is működőképes osztály, és hogy a te programodban mindig fájlból érkezik, az mellékes.
Ezután D konstruktora valahogy így nézhet ki:
D::D(std::string filename, T data) :
B{std::move(D::ReadFrom(filename))},
data{data}
{ }Ha B önmagában nem olvasható be, vagy D-vel együtt kellene, mert B beolvasása után kellenek még az adatok, D-t is adhat vissza a beolvasó függvény.
Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- sziku69: Szólánc.
- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Asszociációs játék. :)
- Vicces képek
- Apple MacBook
- Októberben kerülnek legacy státuszba a régebbi GeForce VGA-k
- Milyen SSD-t vegyek?
- Fejhallgató erősítő és DAC topik
- Mindenki Z Fold7-et akar
- Milyen billentyűzetet vegyek?
- További aktív témák...
- Eladó Garanciális (2027.10.08) AMD 7700 processzor
- 0 perces RYZEN laptop, eredeti Win10! FullHD IPS / 12GB DDR4 / 1TB M.2 SSD! LEGOLCSÓBB SZÁMLÁS ÁR!
- ASUS ROG STRIX 850W Gold Aura Edition RGB Moduláris Tápegység PCIE 5 ATX 3 2x 12VHPWR
- Corsair RM850i 850W Gold Moduláris Tápegység
- Corsair RM750X 750W Gold Moduláris Tápegység
- LG 55G3 - 55" OLED evo - 4K 120Hz 0.1ms - MLA - 2000 Nits - NVIDIA G-Sync - AMD FreeSync - HDMI 2.1
- Apple iPhone SE 16GB, Kártyafüggetlen, 1 Év Garanciával
- HP EliteBook 830 G5 16GB 512GB 13.3" FHD IPS
- Gamer PC-Számítógép! Csere-Beszámítás! I5 12400F / RTX 3070 8GB / 32GB DDR4 / 1TB SSD
- HIBÁTLAN iPhone 15 Pro 256GB Natural Titanium -1 ÉV GARANCIA - Kártyafüggetlen, MS3002, 90% Akksi
Állásajánlatok
Cég: FOTC
Város: Budapest