Ú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!
- Milyen légkondit a lakásba?
- BestBuy topik
- PlayStation 5
- Dobozos formában is befutott az AMD 32 GB-os csúcs-Radeonja
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- LED világítás a lakásban
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Rezsicsökkentés, spórolás (fűtés, szigetelés, stb.)
- Sony MILC fényképezőgépcsalád
- exHWSW - Értünk mindenhez IS
- További aktív témák...
- A képek szerinti szép állapotban eladó DELL LATITUDE 5420 üzleti laptop garanciával 14", i5-11345G7,
- Samsung Galaxy Book PRO 2 /i7-1260P/16GB/512SSD/AMOLED/13.3/Intel Iris Xe/Gari
- Bomba áron eladó Asus Vivobook S433EA /i7-1165G7/16GB/512 GB SSD/FDHD/IPS
- Kihagyhatatlan áron DELL XPS 13 9310 /i5-1135G7/8 GB Ram/512 GB SSD/FHD+ IPS
- Szuper áron eladó Honor MagicBook 16 Series /Ryzen5-5600H/16GB/512 SSD/FHD/IPS/144Hz
- LG 27UL550-W - 27" IPS / 3840x2160 4K / 60Hz 5ms / HDR10 / AMD FreeSync
- HIBÁTLAN iPhone 14 256GB Midnight -1 ÉV GARANCIA - Kártyafüggetlen, MS3242
- Xiaomi 14 512GB, Kártyafüggetlen, 1 Év Garanciával
- GYÖNYÖRŰ iPhone 12 mini 128GB Green -1 ÉV GARANCIA - Kártyafüggetlen, MS3395, 94% Akkumulátor
- HIBÁTLAN iPhone 14 128GB Blue -1 ÉV GARANCIA - Kártyafüggetlen, MS3237
Állásajánlatok
Cég: NetGo.hu Kft.
Város: Gödöllő
Cég: Promenade Publishing House Kft.
Város: Budapest

