Warum muss operator [] eine nicht statische Elementfunktion sein? [Duplikat]

8

Der C ++ Standard besagt, dass "=", "()", "[]" nicht statische Elementfunktion sein sollte.

Warum wird es auf diese Weise spezifiziert? Warum müssen wir den Standard so definieren?

    
Lalu Parshad 04.03.2016, 06:25
quelle

1 Antwort

1

Ich weiß nicht, was das Normenkomitee gedacht hat, aber diese Operatoren sind nicht sehr nützlich, wenn sie nicht am Objekt selbst arbeiten.

Sie geraten auch in Schwierigkeiten, wenn "irgendetwas" für operator() oder operator[] verwendet werden kann, da sie auch in herkömmlichem Code verwendet werden. Wenn Sie kein Objekt benötigen, um damit zu arbeiten [und somit den richtigen Operator auswählen], wird es unordentlich, herauszufinden, welches operator[] verwendet werden soll.

Das operator= ist noch mehr: Was ordnet ihr zu, wenn nicht ein Objekt? Es macht absolut keinen Sinn, das auf irgendetwas anderes als ein Objekt zu tun.

    
Mats Petersson 04.03.2016 06:35
quelle

Tags und Links