Copy Constructor

FooStack

Neues Mitglied
Hallo Leute,
ich habe eine Aufgabe bei der ich folgendes machen muss.
Ich habe 3 Klassen mit einer "zu many" Association A->*B->*C

A: Enthält nur -iA_ : int
B: Enthält nur -iB_ : int
C: Enthält nur -IC_: int

Die Aufgabe lautet:
Implementieren den notwendigen Codefür alle Klassen, sodass A einen Kopierkonstruktur
für tiefe Kopien enthält. Containertyp list . Set und Getter sind nicht notwendig!
Weitere Konstruktoren und Destruktoren nicht notwendig!
Falls man Default-Implementierungen nutzt soll man dies begründen.

So habe ich es implementiert ist dies korrekt?
Copy Constructor:
class C {
private:
  int iC_;
} class B {
private:
  int iB_;
  std::list<C *> CList_;

public:
  B(std::list<C *> CList) : CList_(CList) {}
} class A {
private:
  int iA_;
  std::list<B *> BList_;

public:
  A(std::list<B *> BList) : BList_(BList) {}
  A(const A &crA) { iA_ = crA.iA_; }
}

Vielen Dank für eure Rückmeldungen

Edit:
Sollte ich es richtig verstanden haben dann könnte ich in diesem Fall ja den Default Copy Constructor verwenden?
Würde ich nun ein Pointer haben z.b in der A Klasse dann müsste ich selbst den Copy Constructor implementieren um eine tiefe Kopie zu erzeugen
D.h
Copy constructor:
class A {
private:
  int iA_;
  std::list<B *> BList_;
  int *iPointer;

public:
  A() { iPointer = new int; }
  A(std::list<B *> BList) : BList_(BList) {}
  A(const A &crA) {
    iA_ = crA.iA_;
    iPointer = new int;
    *iPointer = crA.iPointer;
  }
  ~A() { delete iPointer; }
}
 
Zurück
Oben Unten