Saubere Trennung der Zuständigkeiten! Wieso muss sich eine "Schaltung" um Details der Speicherverwaltung kümmern? Oder um die Details, wie eine Liste aufgebaut ist?
Wenn jedes einzelne Schaltungselement per new erstellt wurde (warum eigentlich? Polymorphie?), dann gehört die Speicherverwaltung auch an diese Stelle. Schönerweise gibt es dafür schon fertige Klassen in der Standardbibliothek, die heißen, je nachdem, was du genau brauchst, unique_ptr oder shared_ptr.
Wenn die Schaltelemente in Form einer verketteten Liste gespeichert werden (warum eigentlich?), dann gehört die Listenverwaltung auch an diese Stelle. Schönerweise gibt es dafür schon fertige Klassen in der Standardbibliothek, die heißen, je nachdem, was du genau brauchst, list oder forward_list.
Somit besteht dann die Schaltung aus einer Liste von Schaltelementen, wobei alle Komponenten sich nur um ihre eine Aufgabe kümmern und das dann richtig. Die Schaltung ist dann keine Liste mit Speicherverwaltung mehr, was wohl die wenigsten Leute mit dem Begriff "Schaltung" in Verbindung bringen würden.
Das gilt - in geringerem Maße - auch für die Ausgabe. Eine Schaltung ist wohl eher nicht etwas, was sich selbst auf eine Standardausgabe schreiben kann (zumindest machen das meine Schaltungen eher selten ). Es ist ein Objekt, welches man auf einem Standardausgabestream (oder besser: auf jeder Form von Ausgabestream) ausgeben kann.
P.S.: Ich bin ja eigentlich kein Freund von Rechtschreibflames, aber bei "actuall" geht einfach zu vieles schief (Rechtschreibung, Wortwahl, Sprache). Da muss ich dich einfach drauf aufmerksam machen, bevor du es jemand anderem zeigst.