Ú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!
- Kormányok / autós szimulátorok topikja
- World of Tanks - MMO
- Milyen monitort vegyek?
- Bemutatkozott a Poco X7 és X7 Pro
- Forza sorozat (Horizon/Motorsport)
- Milyen Android TV boxot vegyek?
- LED / LCD TV topik
- Ingatlanos topic!
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- Külföldi rendelések: boltok, fizetés, postázás
- További aktív témák...
- Olcsó számítógép PC - Játékra is! I7 4770 / 16GB DDR3 / GTX 1650 4GB / 256 SSD + 1TB HDD
- Apple MacBook Air 13.6" (2025) M4 Chip, 16GB RAM, makulátlan állapotban 36hó garanciával
- PlayStation 5 Pro konzol (2TB), 3 év garanciával, makulátlan állapotban
- APPLE WATCH SERIES 11 46mm GPS, BLACK + Apple Care+
- SZUPER Akcióban Új Bontatlan Dyson V15 Origin 3 év gyártói garanciával Azonnal Átvehető
- ÁRGARANCIA!Épített KomPhone Ryzen 7 9800X3D 64GB RAM RTX 5080 16GB GAMER PC termékbeszámítással
- ÚJ HP Omen 16 - 16,1" FHD 144Hz - i5 13420H - 16GB - 512GB - RTX 4050 - Win11 - 3 év garancia
- iPhone 17 Pro Max Mélykék - Bontatlan !! www.stylebolt.hu - Apple eszközök és tartozékok !!
- PlayStation 5 FAT Lemezes + kontroller 6 hó garancia, számlával!
- HIBÁTLAN iPhone 12 mini 64GB Purple -1 ÉV GARANCIA - Kártyafüggetlen, MS3481, 100% Akksi
Állásajánlatok
Cég: BroadBit Hungary Kft.
Város: Budakeszi
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest

