OOP-Terminologie in Ruby und C ++

10

Ich nehme an einer C ++ - Klasse in meiner Schule teil. Seit ich in Ruby programmiert habe, kenne ich einige OOP-Sachen.

In C ++ gibt es jedoch Elementfunktionen, Elementvariablen und statische Funktionen. In Ruby gibt es Instanzmethoden, Instanzvariablen und Klassenvariablen. Und es gibt noch mehr ...

Gibt es einen Grund, warum sie anders sind? Sind sie ganz unterschiedliche OOP-Ebenen? Oder nur einige Unterschiede in der Tradition dieser Ökosysteme?

Li Song
quelle

Antworten:

4

Instanz in Ruby und Member in C ++ sind praktisch dasselbe, sodass Instanzvariablen und Membervariablen identisch sind, ebenso wie Instanzmethoden und Memberfunktionen.

Statische Elemente unterscheiden sich jedoch etwas von Klassenvariablen in Ruby, da sich das Ruby-Objektmodell stark von C ++ unterscheidet. In Ruby sind Klassen Objekte, daher sind Klassenvariablen Instanzvariablen eines Klassenobjekts.

Lee
quelle
6

Es sind nur verschiedene Namen für dasselbe. Sie sehen dasselbe bei der Vererbung: Basis vs. Eltern vs. Superklassen. Schullehrer und Leute, die nur eine Sprache sprechen, sind manchmal sehr pedantisch in Bezug auf die Begriffe. In der Industrie mischen und passen Menschen häufiger zusammen.

Karl Bielefeldt
quelle
0

Die Konzepte - oder wie Sie sie nennen - Ebenen von OOP sind in allen OO-Sprachen ähnlich oder gleich, und viele Unterschiede in der Terminologie ergeben sich aus der Geschichte und Tradition der Sprachen und ihrer Ökosysteme. Aus diesem Grund werden beim Vergleich der beiden Sprachen unterschiedliche Begriffe verwendet, um sehr ähnliche Konzepte zu beschreiben.

Timo Geusch
quelle