friend auch für abgeleitete Klassen ?
-
Gibt es eine Möglichkeit, nicht nur eine andere Klasse als friend zu deklarieren,sondern auch automatisch alle Klassen,die sich von der als friend deklarierten Klasse ableiten,als friend zu deklarieren ?
-
Gibt es nicht.
G freeG
-
Bronski schrieb:
Gibt es eine Möglichkeit, nicht nur eine andere Klasse als friend zu deklarieren,sondern auch automatisch alle Klassen,die sich von der als friend deklarierten Klasse ableiten,als friend zu deklarieren ?
Nur über Umwege. Zum Beispiel über protected Methoden, welche den Zugriff auf den friend umleiten.
-
Bronski schrieb:
Gibt es eine Möglichkeit, nicht nur eine andere Klasse als friend zu deklarieren,sondern auch automatisch alle Klassen,die sich von der als friend deklarierten Klasse ableiten,als friend zu deklarieren ?
Wofür brauchst du das? Dein Problem kann man sicherlich anderweitig lösen.
-
Also ich möchte bei meinem Projekt zur Fehlerbehandlung möglichst wenig Exceptions verwenden, da ich Angst habe, dass diese die Ressourcen nicht ordentlich freigeben und Speicherlecks entstehen könnten.
Jede wichtige Klasse hat eine eigene Klasse, in der alle auftretenden Fehler, die die Klasse betreffen, untergebracht sind, den Errorhandler.
Kann eine Klasse ihr Problem nicht selbst lösen, so gibt sie diesen an eine andere Klasse via Signal/Slot Verbindung (Qt) an eine andere Klasse weiter, und deren Errorhandler bearbeitet den Fehler.Es ist eigentlich die Idee einer Zuständigkeitskette, realisiert aber über ein Brückenpattern.
Durch Ableiten des Errorhandlers, kann man nun die Fehlerbehandlung elegant ändern, bzw. wenn es unbedingt sein muss, sogar während der Laufzeit austauschen. Der Errorhandler braucht aber in einigen Fällen uneingeschränkten Zugriff auf seine Klasse um Fehler bearbeiten zu können
-
Bronski schrieb:
Also ich möchte bei meinem Projekt zur Fehlerbehandlung möglichst wenig Exceptions verwenden, da ich Angst habe, dass diese die Ressourcen nicht ordentlich freigeben und Speicherlecks entstehen könnten.
Dazu gibt es RAII. Wenn man sich daran hält, werden die Ressourcen auch freigegeben.
-
Um Gottes Willen verwend Exceptions.
Bronski schrieb:
[...] da ich Angst habe, dass diese die Ressourcen nicht ordentlich freigeben und Speicherlecks entstehen könnten.
Wenn dus ordentlich machst hast du keinen Grund Angst zu haben. Wenn du Angst haben musst dann hast dus nicht ordentlich gemacht

RAII wurde ja schon genannt, das ist für ordentliches C++ essentiell.
-
Zudem sind rohe Zeiger auf allokierten Bereich in C++ absolut tabu. Und noch zum dritten Mal: RAII
Jeder Container der STD und boost hat RAII drauf. Keine Angst!
-
Vielen Dank für eure Antworten.
In die RAII Materie werde ich mich sofort einlesen.