"Desilva" <private@online.dk> skrev i en meddelelse
news:abon78$1hbm$1@news.cybercity.dk...
> Jeg vil gerne være i stand til at lade en constructor returnere NULL hvis
> ex. der er ugyldige parametere med i constructor kaldet, så man kan gøre
> alle.
En constructor kan ikke returnere noget. Heller ikke en this-pointer.
> CMyClass *MyClass=new CMyClass(23);
> if (!MyClass) så gik der noget galt.
> ..men hvordan gør jeg i praksis dette da en constructor jo netop ikke kan
> returnere andet end "this"..?
Du kan kaste en undtagelse i din constructor hvis noget går galt.
Så er du sikker på at det dårlige objekt aldrig bliver brugt.
En anden mulighed er at have en metode der afgør om objektet
er gyldigt og kan bruges. Så kan du checke dette først.
Vha. operator-overloading kan det minde lidt dit null-pointer test.
Hilsen Anders
bool MyClass:
erator!(void)const {
return !_valid;
}
MyClass:
erator bool()const {
return _valid;
}
CMyClass *MyClass=new CMyClass(23);
if (!*MyClass) så gik der noget galt.