Наследование для метаметодов в Lua

Мне очень нравится, как объектно-ориентированное программирование описано в «программировании на lua» 16.1, 16.2:

http://www.lua.org/pil/16.1.html

http: // www. lua.org/pil/16.2.html

и хотел бы следовать этому подходу. но я хотел бы пойти немного дальше: я хотел бы иметь базовый «класс», называемый «класс», который должен быть базой для всех подклассов, потому что я хочу реализовать там некоторые вспомогательные методы (например, «instanceof» и т. д. .), но по сути это должно быть так, как описано в книге:

function class:new(o)
    o = o or {}
    setmetatable(o, self)
    self.__index = self
    return o
end

Теперь о моей проблеме:

я хотел бы иметь класс "number", который наследуется от "class":

number = class:new()

я хотел бы определите метаметоды для перегрузки операторов (__add, __sub и т.д.) в этом классе, так что работает что-то вроде:

n1 = number:new()
n2 = number:new()

print(n1 + n2)

. это не проблема.

Большое спасибо!

6
задан aurora 11 November 2010 в 15:31
поделиться