- Honor Magic V2 - origami
- Samsung Galaxy Watch8 - Classic - Ultra 2025
- Sony Xperia 1 V - kizárólag igényeseknek
- OnePlus Nord 5 - lehűti a kedélyeket
- Samsung Galaxy A56 - megbízható középszerűség
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Apple Watch Ultra - első nekifutás
- Honor 200 - kétszázért pont jó lenne
- Idei legolcsóbb mobilját dobta piacra a Samsung
- Ezek az új Google Pixel cuccok hivatalos magyar árai
Ú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!
- Telefon felvásárlás!! Honor Magic6 Lite, Honor Magic6 Pro, Honor Magic7 Lite, Honor Magic7 Pro
- Beszámítás! Samsung Galaxy Tab S6 Lite 2020 64GB 4G tablet garanciával hibátlan működéssel
- HIBÁTLAN iPhone SE 2020 128GB Red -1 ÉV GARANCIA - Kártyafüggetlen, MS2192, 100% Akkumulátor
- MacBook Pro 16 2021 M1 Max 32GB 512GB 1 év garancia
- BESZÁMÍTÁS! Apple Macbook Pro 16" 2019 i9 64GB 1TB 5500M 8GB garanciával hibátlan működéssel
Állásajánlatok
Cég: FOTC
Város: Budapest