C
Crymes
Guest
Ich habe folgende Klassen:
und
Mein Problem ist jetzt wie ich einen Fehler im Konstruktor bemerke der in den Basisklassen erzeugt wird (wie in A). Ich hab verschiedenes gelesen von dass bei Fehlern das Objekt automatisch sauber zerstört wird (wenn man unique Pointe verwendet) bis hin zu "ohne Funktions try-catch geht nichts". Wie macht man sowas sauber ?
Was passiert außerdem wenn in einem Objekt C in den Variablendeklarationen sowas stehen würde : B Objekt; ? Schlägt dann der Konstruktor von C automatisch fehl ?
Code:
class A
{
public:
A(int v1, int v2)
{
if(FunktionDieBeiFehler0Zurückgibt() == 0)
{
throw "error"; //???
}
}
}
Code:
class B : public A
{
private:
char* buffer;
public:
public B(int v1, int v2) : A(v1, v2)
{
buffer = new char[10000]; //Wie mache ich hier die Fehlerbehandung
}
}
und
Code:
main()
{
//So würde ich gerne die Fehlerbehandlung als "Benutzer" des Objekts B machen
B *Objekt;
try
{
Objekt = new B(1, 2);
}
catch(...)
{
//Wird ausgeführt wenn Objekt nicht erstellt werden kann
}
}
}
Mein Problem ist jetzt wie ich einen Fehler im Konstruktor bemerke der in den Basisklassen erzeugt wird (wie in A). Ich hab verschiedenes gelesen von dass bei Fehlern das Objekt automatisch sauber zerstört wird (wenn man unique Pointe verwendet) bis hin zu "ohne Funktions try-catch geht nichts". Wie macht man sowas sauber ?
Was passiert außerdem wenn in einem Objekt C in den Variablendeklarationen sowas stehen würde : B Objekt; ? Schlägt dann der Konstruktor von C automatisch fehl ?