[Gelöst]Polymorphe Klasse



  • Wieso erhalte ich einen Runtime Error?
    Wenn ich einen string statt const char verwende passiert das nicht...

    #include <string>
    #include <iostream>
    using namespace std;
    
    struct Polymorphe_Basis_Class
    {
    	Polymorphe_Basis_Class(const char* _textBasis) 
    	{
    		cout << "Konstruktor der Klasse Basis wurde erfolgreich aufgerufen." << endl;
    	}
    	virtual ~Polymorphe_Basis_Class()
    	{
    		cout << "Destruktor der Basis Klasse wurde erfolgreich aufgerufen." << endl;
    	}
    };
    
    struct Polymorphe_Abstract_Class : public Polymorphe_Basis_Class
    {
    	Polymorphe_Abstract_Class(const char* _textAbstract)
    		:Polymorphe_Basis_Class(_textAbstract), text(_textAbstract)
    	{
    		cout << "Konstruktor der Klasse Abstract Aufruf." << endl;
    	}
    	~Polymorphe_Abstract_Class()
    	{
    		cout << "Destruktor der Klasse Abstract erfolgreich aufgerufen." << endl;
    		delete[] text;
    	}
    	const char* text;
    };
    
    int main(int argc, char* argv[])
    {
    	Polymorphe_Basis_Class* Abstract_Class = new Polymorphe_Abstract_Class("Hallo Welt");
    
    	delete Abstract_Class;
    
    	system("PAUSE"); // Auf Tastendruck warten
    }
    


  • Es könnte daran liegen, dass man C-String-Literale nicht löschen darf.



  • Achso, das wusste ich nicht.
    Vielen Dank.



  • Stilfrage:
    Wenn ich denglische Bezeichner lese bekomme ich immer ein seltsames Gefühl. Geht vielleicht nur mir so, aber ich find´s fürchterlich. Irgendwie gewollt und nicht gekonnt.



  • 😃 So ist es eben.
    Edit: Ich weiß, dass ich an meinem Englisch arbeiten muss.



  • Namen sind Schall und Rauch. Lass einen Obfuscator drüberlaufen, der alle Bezeichner verschwurbelt und du hast kein Denglisch mehr. Mich selbst stört sowas nicht wirklich, da könntest du auch Kyrillisch oder Kanji nehmen.


Anmelden zum Antworten