1. Dashboard
  2. Artikel
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  1. HTML - Webmaster Forum
  2. Programmierung - Entwickler Forum
  3. Forum für alle anderen Programmiersprachen

Sicherer Zeiger

  • The User
  • 15. August 2008 um 17:29
  • The User
    Forum Guru
    Beiträge
    4.044
    • 15. August 2008 um 17:29
    • #1

    Hi Leute!
    Ich möchte mir einen sicheren Zeiger implementieren, eigentlich hab ichs sogar gemacht.
    Es gibt jedoch ein Problem:

    Code
    template<typename type> inline type& jpointer<type>::operator*() const
    {
        if(ptr)
            return *ptr;
        throw domain_error("Tried to call jpointer::operator*(), but the pointer is NULL");
    }

    Wenn ich jetzt *p mit einem ungebundenen Zeiger aufrufe, wird wunderbar ein domain_error ausgelöst, den ich auch Auffangen kann:

    Code
    catch(domain_error e)
    {
      cerr << e.what() << endl;
      cerr << "bla"; // das letzte was ich vom Programm höre
      cout << "blabla"; // vielleicht übersetzt er "blabla" in "Speicherzugriffsfehler", aber warum er dann noch terminate aufruft???
    }


    Sobald ich eine andere Anweisung als cerr oder throw in den Catch-Block einfüge, bricht das Programm ab: "Speicherzugriffsfehler", auch wenn im Catch-Block nur ein cerr steht, bricht das Programm am Ende des Catch-Blocks ab.
    Was kann ich da falsch machen?

    Danke für jede Hilfe...
    The User

    Freiheit bedeutet mehr.

    "Mir ist die gefährliche Freiheit lieber als eine ruhige Knechtschaft."
    (Jean Jacques Rousseau)
    Mein Blog zum Programmieren, GNU/Linux etc.
    Free Chelsea Manning!
    Stolzer Nutzer von KDE, openSUSE und Qt.

  • minder
    Gast
    • 18. August 2008 um 20:14
    • #2

    Ich glaube du findest hier keine Hilfe. Frag doch mal im Forum von C++ nach.

    http://www.c-plusplus.de

  • The User
    Forum Guru
    Beiträge
    4.044
    • 18. August 2008 um 22:29
    • #3

    Ich weiß nicht warum, aber jetzt geht es. ;)

    Freiheit bedeutet mehr.

    "Mir ist die gefährliche Freiheit lieber als eine ruhige Knechtschaft."
    (Jean Jacques Rousseau)
    Mein Blog zum Programmieren, GNU/Linux etc.
    Free Chelsea Manning!
    Stolzer Nutzer von KDE, openSUSE und Qt.

  • minder
    Gast
    • 19. August 2008 um 16:48
    • #4

    ist doch gut?:razz:

  • The User
    Forum Guru
    Beiträge
    4.044
    • 19. August 2008 um 18:40
    • #5

    Natürlich ist es gut, hab jetzt auch schon einen weiteren Zeigertypen gemacht und werde es bald hochladen. ;)

    Edit:
    Habe jetzt herausgefunden, woran es lag, glaub ich zumindest:
    Wenn das Bearbeiten eines Objekts eine Ausnahme auslöst und anschließend versucht wird darauf zuzugreifen, gibt es natürlich einen Fehler. ;)

    Freiheit bedeutet mehr.

    "Mir ist die gefährliche Freiheit lieber als eine ruhige Knechtschaft."
    (Jean Jacques Rousseau)
    Mein Blog zum Programmieren, GNU/Linux etc.
    Free Chelsea Manning!
    Stolzer Nutzer von KDE, openSUSE und Qt.

    Einmal editiert, zuletzt von The User (19. August 2008 um 18:59)

Tags

  • domain
  • forum
  • hilfe
  • www
  • opera
  • programm
  • problem
  • code
  • fehler
  • bearbeiten
  • error
  • inline
  • return
  • c++
  • speicherzugriffsfehler

Benutzer online in diesem Thema

  • 1 Besucher
  1. Datenschutzerklärung
  2. Impressum
Community-Software: WoltLab Suite™
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche