Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?
Forum>Entwickler>Kleines C++ Problem

Kleines C++ Problem

Tic19.03.1006:35
Seit langer Zeit muss ich wieder mal was mit C++ machen (Classes)

ich habe eine Klasse
class A {
  private:
   B &objekt;
  public:
   A();
};

class B {
  private:
   B(const B &source);
   B &operator=(const B& source);
  public: 
   B();
   virtual ~B() throw();
};

B ist gegeben daher darf ich daran nichts verändern. Ich muss auch B (in A) genau mit dem &operator Deklarieren.

Laut eines Beispieles wird die main folgender Maßen aufgerufen
main() {
B b;
A *a = new A(b);
}

Bei verschiedensten Variationen kams immer soweit, dass er schrieb (beim Kompilieren):
Error in A.h Fehler B & Oparator is Private


Könnte mir vielleicht einer von euch paar Tipps geben wie ich das ganze Erweitern muss, dass zumindest der Main aufruf ohne probs verläuft
0

Kommentare

Windläufer19.03.1008:01
Na ich würde mal behaupten der Consturctor von A ist falsch.
So kannste kein b übergeben.

Grüße
0
Navier-Stokes
Navier-Stokes19.03.1008:37
Hi!
1) Windkäufer hat recht. Es gibt keinen solchen Konstruktor. Er könnte so aussehen:
A(B &b):
objekt(b)
{
}
Jetzt musst Du zusehen, dass Dein copy-constructor
B(const B &source);
oder dein Zuweisungsoperator
B &operator=(const B& source);
public wird.
„Computer Science is no more about computers than astronomy is about telescopes. (Edsger W. Dijkstra)“
0
Tic19.03.1016:46
Habe eine Lösung gefunden und zwar...
A(B &b):objekt(b) {}


trotzdem thx!
0
Navier-Stokes
Navier-Stokes19.03.1020:42
Tic
Habe eine Lösung gefunden und zwar...
A(B &b):objekt(b) {}


trotzdem thx!

Wieso trotzdem?
„Computer Science is no more about computers than astronomy is about telescopes. (Edsger W. Dijkstra)“
0
Tic19.03.1021:56
Navier-Stokes
Wieso trotzdem?

Naja weil es nicht genau die Antwort auf meine Frage war, aber trotzdem sehr bemüht

Wie ich oben Angeführt habe, war ich nichts an B verändern, dass heißt auch nicht aus private public machen

Wie gesagt, thx trotzdem
0
Navier-Stokes
Navier-Stokes19.03.1023:28
Wundert mich, dass es so geht. A(b) ruft den privaten Konstruktor von B auf!?!
„Computer Science is no more about computers than astronomy is about telescopes. (Edsger W. Dijkstra)“
0
Desperado20.03.1001:25
B &object ist selber eine Referenz, der in der Initialisierungsliste lediglich eine andere Referenz zugewiesen wird. Daher wird auch der Kopierkonstruktor nicht aufgerufen.
0

Kommentieren

Diese Diskussion ist bereits mehr als 3 Monate alt und kann daher nicht mehr kommentiert werden.