Hirdetés
- IFA 2025: Sokrétű tudást kínál az AGM két friss strapabírója
- Telekom T Phone 3 5G – modern tudakozó
- Valószínűleg a Honor legolcsóbb modellje lesz
- IFA 2025: Lépcsőmászó, víztisztító, szögletes és gombóc alakú robotporszívók
- 3 milliós villanyautó, AI tamagocsi és kamerás napszemüveg - megjött az AstraUX
- Samsung Galaxy A55 - új év, régi stratégia
- Motorola Edge 40 - jó bőr
- Telekom mobilszolgáltatások
- iPhone 16e - ellenvetésem lenne
- Google Pixel topik
- Google Pixel 10 Pro XL – tíz kicsi Pixel
- Redmi Note 9 Pro [joyeuse]
- Honor Magic V5 - méret a kamera mögött
- Telekom T Phone 3 5G – modern tudakozó
- Huawei P30 - kell ennél több?
Új hozzászólás Aktív témák
-
jattila48
aktív tag
válasz
ToMmY_hun #2739 üzenetére
Ha exceptiont dob a konstruktor, akkor nem jön létre az objektum (és így a destruktora sem fog meghívódni). A new lefoglalja a megfelelő tárhelyet, majd mikor a ctor exceptiont dob, fel is szabadítja azt. A factory függvényedben kell lekezelni az exceptiont, és NULL-t (vagy nullptr-t, vagy "üres" smart pointert) visszaadni, ha a konstruktor exceptiont dobott.
class MyClass{
....
};
MyClass * factory(int arg){
MyClass *p=NULL;
try{
p=new MyClass(arg);
}
catch(...){{
return p;
}Az egyszerűség kedvéért írtam raw pointer visszatérő értéket, igazából a factory fv.-nek inkább std::unique_ptr<MyClass> smart pointert célszerű visszaadni.
Egyébként a paraméter ellenőrzést már a factory fv.-ben is elvégezheted, de akkor csak ezzel célszerű objektumot létrehozni, ctor közvetlen hívásával nem, mert az nem ellenőrzi a paramétereket. Ezt úgy lehet elérni, hogy a ctor-t protected-dé teszed, a factory-t pedig az osztály friend-jévé, vagy statikus tfv.-évé.MyClass * factory(int arg){
if(arg>0){
return new(std::nothrow) MyClass(arg);
}
else{
return NULL;
}
}
Ú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!
- Mini-ITX
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- One otthoni szolgáltatások (TV, internet, telefon)
- Kerti grill és bográcsozó házilag (BBQ, tervek, ötletek, receptek)
- Hobby elektronika
- Fejhallgató erősítő és DAC topik
- Szemez az Intel gyártósoraival a Qualcomm
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- GL.iNet Flint 2 (GL-MT6000) router
- További aktív témák...
- AKCIÓ! Apple Mac Studio M2 ULTRA 2023 64GB 1TB SSD számítógép garanciával, hibátlan működéssel
- PlayStation 5 Slim (lemezes) + kontroller 6 hó garancia, számlával!
- HP ZBook Firefly 14 i7-1165G7 16GB 512GB 14" FHD 1 év garancia
- GYÖNYÖRŰ iPhone 11 64GB White -1 ÉV GARANCIA - Kártyafüggetlen, MS3346, 100% Akkumulátor
- Eladó 2db Nokia steel hr hibrid okos óra dobozával
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest