Chain-calling Member funktioniert von einem Konstruktor eines benannten Objekts

8

Erstens, ich spreche nicht über C ++ 11 Konstruktor Verkettung aka Konstruktor Delegation.

Klassenelementfunktionen können einen Verweis auf sich selbst (die Klasse) zurückgeben, damit Funktionsaufrufe verkettet werden können. (Wie funktioniert der cout & lt; & lt; -Operator, um Kettenaufrufe zuzulassen.)

Bei der Instanziierung eines anonymen Objekts können solche Kettenaufrufe über den Konstruktor erfolgen.

Können Kettenaufrufe von einem Konstruktor eines benannten Objekts ausgeführt werden? Die Zeilen für "foo a" und "foo b" unten kompilieren nicht, also frage ich mich, ob es eine andere Syntax gibt.

%Vor%     
user1902689 25.09.2016, 01:41
quelle

2 Antworten

2

Sie können einen ähnlichen Effekt erhalten, der die Initialisierung kettet:

%Vor%

Überraschenderweise hat mein Compiler das auf eine Konstante optimiert, so dass es keine Leistungseinbußen gibt.

    
superscalar 25.09.2016 02:20
quelle
2

Ich denke, das ist einer der Vorteile der Fast immer Auto Stil. Wenn du es gewohnt bist zu schreiben:

%Vor%

Dann können Sie Aufrufe ohne Inkonsistenz verketten:

%Vor%     
Chris Drew 07.10.2016 19:39
quelle