Ú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!
- Futárcégek
- Örömhír: nem spórol Európán a OnePlus
- potyautas: Másik küldetés
- Samsung Galaxy A54 - türelemjáték
- Brogyi: CTEK akkumulátor töltő és másolatai
- Garancia kérdés, fogyasztóvédelem
- Milyen légkondit a lakásba?
- Soundbar, soundplate, hangprojektor
- Robotporszívók
- iPhone topik
- További aktív témák...
- Bontatlan! Új Lenovo Thinkpad T14 G5 Tartós Üzleti Laptop 14" -45% Ultra 7 165U 16/512 FHD+
- Microsoft Surface Prémium minőségi Érintős Laptop Ultrabook 13,5"-65% Ryzen 5 16/256 Tűéles Retina
- Eladó Konfig Ryzen 7 3800X 16GB DDR4 1TB SSD RTX3060 12GB!
- Microsoft Surface Prémium minőségi Érintős Laptop Ultrabook 13,5"-65% i7-1185G7 16/512 Tűéles Retina
- Samsung Galaxy Z Fold7 Dual SIM 256GB 12GB RAM 5G (Jet Black) Fekete, gyári független. BONTATLAN!
- magyar billentyűzet - 172 - Lenovo Legion Pro 7 (16IAX10H) - Intel Core U9 275HX, RTX 5080
- BESZÁMÍTÁS! Gigabyte B650M R5 7600X 32GB DDR5 512GB SSD RX 6900XT 16GB Zalman Z1 PLUS NZXT 850W
- ÁRGARANCIA!Épített KomPhone i9 14900KF 32/64GB RAM RTX 5070 Ti 16GB GAMER PC termékbeszámítással
- GYÖNYÖRŰ APPLE WATCH ULTRA 2 NATURAL TITANIUM 49MM -1 ÉV GARANCIA - MS3715, 98% AKKUMULÁTOR
- BESZÁMÍTÁS! ASUS ROG Crosshair VIII Extreme alaplap garanciával hibátlan működéssel
Állásajánlatok
Cég: BroadBit Hungary Kft.
Város: Budakeszi
Cég: ATW Internet Kft.
Város: Budapest

