nntp2http.com
Posting
Suche
Optionen
Hilfe & Kontakt

Abstrakten Typen verwenden

Von: VuuRWerK (vuurwerk@gmx.de) [Profil]
Datum: 22.04.2009 00:15
Message-ID: <734c315b-330d-4a8b-bff6-2f695a933481@k38g2000yqh.googlegroups.com>
Newsgroup: de.comp.lang.iso-c++
Hallo ich muss doch nochmal stören,

diesmal wieder mit einem Problem welches ich lösen kann in dem ich
Pointer verwende :) Aber auch hier möchte ich erst alles ausschließen
können bevor ich zum Pointer greife. Nein ich habe keine Angst vor
Pointern aber meine Intensionen warum ich weitesgehend auf Pointer
verzichten möchte hatte ich ja schon in meinem Post bzgl "nullptr für
Objekte" geschrieben.

Problem diesmal: Ich habe diverse Abstrakte Typen definiert. Diese
bilden ein Interface zu meiner API. Diese Typen benutze ich demnach
auch in meinen eigenen Implementierungen. Aber kurz wieder etwas Code
an welcher Stelle bei mir der Schuh drückt:
=========================
===================
struct A {
virtual void f() const = 0;
};

struct C : public A {
virtual void f() const {
// do anything ...
}
};

struct B {
A a;  // geht ohne pointer nicht :(
C c;  // geht da konkreter Typ
A* pA; // würde auch gehen aber wäre ja ungern benutzer Pointer
};
=========================
===================
Problem wie man sieht, ich kann A nicht in B verwenden. Ich habe
natürlich schon die Suchmaschine strapaziert und einige Workarounds
gefunden allerdings bereitet mir dies wieder Bauchschmerzen und ich
wollte mir gern vorher noch eine Meinung von Euch einholen ob es denn
vllt. einen "benutzbaren" Ansatz gibt? Sehr gern auch wieder eine
Lösung ala "fallible" (siehe nullptr für Objekte).

Danke Euch schonmal für Eure Bemühungen
Grüße
Christian

[ Auf dieses Posting antworten ]

Antworten