Мне очень нравится, как объектно-ориентированное программирование описано в «программировании на 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)
. это не проблема.
Большое спасибо!