- Elon Musk járatára váltott jegyet a legújabb magyar műhold
- Viszonylag olcsó, 26,5 hüvelykes QD-OLED monitor bukkant fel az MSI kínálatában
- Jönnek az egyes, problémákkal küzdő ASUS ROG noteszgépek kipofozott BIOS-ai
- GeForce RTX 5060: Ezt kapjuk 150 ezerért
- Megjöttek az Endorfy Thock V2 sorozatú klaviatúrái
- Milyen alaplapot vegyek?
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- Épített vízhűtés (nem kompakt) topic
- Hogy is néznek ki a gépeink?
- Gaming notebook topik
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- NVIDIA GeForce RTX 5070 / 5070 Ti (GB205 / 203)
- Apple asztali gépek
Ú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!
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- Apple iPhone Air - almacsutka
- Kerékpárosok, bringások ide!
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- Luck Dragon: Asszociációs játék. :)
- Apple Watch Ultra - első nekifutás
- Kijelző került a kamerasávra a Xiaomi 17 Pro és 17 Pro Max hátulján
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Háztartási gépek
- Le Mans Ultimate
- További aktív témák...
- Xiaomi 15 512GB Black, Bontatlan, Új, 0 Perces, Fekete, 1 Év Garancia
- Lenovo ThinkVision P27q-10 27 WQHD IPS monitor, hibátlan állapotban
- Xiaomi 15 512GB Black, Bontatlan, Új, 0 Perces, Fekete, 1 Év Garancia
- Apple iPhone 16 Pro Max 256GB sivatagi titán gyári független
- Asztali PC i5-4460 / GTX 750 Ti / 8GB RAM / 120GB SSD Wi-Fi antennával
- Samsung Galaxy S23+ 256GB, Kártyafüggetlen, 1 Év Garanciával
- GYÖNYÖRŰ iPhone 13 256GB Midnight -1 ÉV GARANCIA - Kártyafüggetlen, MS3205
- LG 35WN75C-B - 35" Ívelt VA - 3440x1440 - 100Hz 5ms - USB Type-C 60W - AMD FreeSync - HDR 10
- LG 32SQ700S-W - 32" VA Smart - 3840x2160 4K UHD - 62Hz 5ms - WebOS - Wifi + BT - USB-C - Hangszórók
- LG UltraGear Gaming Monitorok -30%
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopműhely Bt.
Város: Budapest