- Milyen asztali (teljes vagy fél-) gépet vegyek?
- VR topik (Oculus Rift, stb.)
- TCL LCD és LED TV-k
- ASUS ROG Ally
- AMD vs. INTEL vs. NVIDIA
- Milyen billentyűzetet vegyek?
- Nyárbúcsúztató hardvermix
- Amlogic S905, S912 processzoros készülékek
- NVIDIA GeForce RTX 4060 / 4070 S/Ti/TiS (AD104/103)
- Soundbar, soundplate, hangprojektor
Ú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!
- A fociról könnyedén, egy baráti társaságban
- Xiaomi 15 - kicsi telefon nagy energiával
- Windows 10
- Formula-1
- Tőzsde és gazdaság
- Telekom mobilszolgáltatások
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Székesfehérvár és környéke adok-veszek-beszélgetek
- Milyen okostelefont vegyek?
- VR topik (Oculus Rift, stb.)
- További aktív témák...
- GIGABYTE RTX 4080 SUPER 16GB GDDR6X GAMING OC - Gari 2027.12.10. -ig - Eladó!
- ASUS GTX 1060 6GB GDDR5 ROG STRIX OC Eladó!
- ASUS RX 5700 XT 8GB GDDR6 ROG STRIX OC Eladó!
- Western Digital Blue SA510 500GB SATA3 - Új, bontatlan - Eladó!
- Crucial T500 PRO 2TB M.2 NVME PCI-E 4.0 x4 - Új, Hűtőbordás - 7400-7000 MBs - Eladó!
- Lenovo Yoga Slim 7 i5-1135G7 8GB 512GB 14" FHD IPS
- Bomba ár! Dell Latitude E7270 - i7-6GEN I 8GB I 256GB SSD I 12,5" HD I HDMI I CAM I W10 I Gari!
- HP 14 Pavilion FHD IPS i5-1135G7 4.2Ghz 16GB RAM 512GB SSD Intel Iris XE Graphics Win11 Garancia
- Lenovo magyar laptop billentyűzetre van szükséged? Akármelyik verzióban segítünk!
- Bomba ár! Microsoft Surface Pro 3 Tablet - i5-4GEN I 8GB I 256GB SSD I W10 I Cam I Garancia!
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft.
Város: Budapest