Hirdetés
- Külföldi prepaid SIM-ek itthon
- Így spórolhat az Apple az iPhone 18 kijelzőin
- Motorola Moto G84 - színes egyéniség
- Motorola Edge 70 - többért kevesebbet
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Bemutatkozott az Oppo kamerás csúcsmodellje
- Samsung Galaxy A57 - kecses test, lusta lélek
- Az Amazfit GTR és GTS 3 is szemrevaló lett
- Vivo X300 Pro – messzebbre lát, mint ameddig bírja
- Yettel topik
Ú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!
- Külföldi prepaid SIM-ek itthon
- Milyen autót vegyek?
- Felégeti készpénztartalékait a Tesla
- Így spórolhat az Apple az iPhone 18 kijelzőin
- Motorola Moto G84 - színes egyéniség
- Békéscsaba és környéke adok-veszek-beszélgetek
- Kerékpárosok, bringások ide!
- iPad topik
- Graphics: Telefonvásárlási kálváriám....avagy clickbait cím: Horror a hardveraprón
- Autós topik
- További aktív témák...
- Acer Nitro 15 gamer laptop! -i7 9750H, RTX 2060 6gb, 32gb DDR4, 500gb SSD, 1tb HDD
- 3-in-1 PRÉMIUM USB-C HUB /Samsung Dex, MacBook, Surface, Chromebook ,Huawei,Motorola
- Üvegfólia,hidrogél fólia: iPhone ,Honor,Google Pixel,,Nothing Phone,Motorola, Samsung telefonokhoz
- 2TB HDD 100/100 - Több darab!
- Gigabyte AORUS 16X - Core i9 14900HX - 32gb ram - RTX 4090 (175W) 1TB SSD + 2027 januárig gyári gar
- HIBÁTLAN iPhone 15 Pro 128GB Natural Titanium -1 ÉV GARANCIA - Kártyafüggetlen, MS4401
- REFURBISHED - HP USB-C Universal Dock G1 (DisplayLink)
- Motorola Edge 40 Pro 256GB, Kártyafüggetlen, 1 Év Garanciával
- AKCIÓ! Acer Predator Helios Neo 16 PHN16 notebook-i9 13900HX 16GB DDR5 1TB SSD RTX 4060 8GB W11
- LG UltraWide 34WQ500-B IPS Monitor! / 2560x1080 / 5ms / FreeSync
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

