ООП терминология в Ruby и C ++

10

Я учусь на С ++ в своей школе. Так как я программировал на Ruby, я знаю кое-что ООП.

Но в C ++ есть функции-члены, переменные-члены и статические функции. В Ruby у нас есть методы экземпляра, переменные экземпляра и переменные класса. И есть еще ...

По какой причине они разные? Это совершенно разные уровни ООП? Или просто некоторые различия в традициях этих экосистем?

Ли Сонг
источник

Ответы:

4

Экземпляр в Ruby и член в C ++ - это одно и то же, поэтому переменные экземпляра и переменные-члены одинаковы, как методы экземпляра и функции-члены.

Однако статические члены несколько отличаются от переменных класса в Ruby, поскольку объектная модель Ruby сильно отличается от C ++. В Ruby классы являются объектами, поэтому переменные класса являются переменными экземпляра объекта класса.

подветренный
источник
6

Это просто разные имена для одной и той же вещи. Вы видите то же самое с наследованием: базовый класс против родительского класса против суперклассов. Школьные учителя и люди, которые знают только один язык, иногда будут очень педантичны в отношении этих терминов. В промышленности вы найдете людей, которые смешивают и сопоставляют чаще.

Карл Билефельдт
источник
0

Концепции - или, как вы их называете, уровней - ООП одинаковы или одинаковы в разных языках ООП, и многие различия в терминологии проистекают из истории и традиций языков и их экосистем. Вот почему вы видите разные термины, используемые для описания очень похожих концепций, когда вы сравниваете два языка.

Тимо Гюш
источник