Ú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!
- Kertészet, mezőgazdaság topik
- Újjászületés: szombattól új szerverkörnyezetben a PROHARDVER! lapcsalád
- VR topik (Oculus Rift, stb.)
- Eredeti játékok OFF topik
- Üzleti vita és megbeszélés
- AliExpress tapasztalatok
- Kuponkunyeráló
- Battlefield 6
- NVIDIA GeForce RTX 5070 / 5070 Ti (GB205 / 203)
- Milyen belső merevlemezt vegyek?
- További aktív témák...
- BESZÁMÍTÁS! ASUS B450M R5 5500 16GB DDR4 512GB SSD RTX 2070 Super 8GB DEEPCOOL Tesseract SW 600W
- Bomba ár! HP ProBook 645 G3 - AMD A10-8730B I 8GB I 256SSD I 14" HD I Cam I W11 I Garancia!
- HIBÁTLAN iPhone 13 128GB Starlight -1 ÉV GARANCIA - Kártyafüggetlen, MS3726
- HP Z-Book G3 ! Csere-Beszámítás! I7 6820HQ / Nvidia Quadro M1000M 2GB / 16Gb DDR4 ! Új Akksi!
- GYÖNYÖRŰ iPhone SE 2020 128GB Black -1 ÉV GARANCIA - Kártyafüggetlen, MS3588, 100% Akksi
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: Laptopműhely Bt.
Város: Budapest