Lua类继承(二)
来源:互联网 发布:php 开发 restful api 编辑:程序博客网 时间:2024/06/03 22:58
Lua类继承(二)
function clone(object) local lookup_table = {} local function _copy(object) if type(object) ~= "table" then return object elseif lookup_table[object] then return lookup_table[object] end local new_table = {} lookup_table[object] = new_table for key, value in pairs(object) do new_table[_copy(key)] = _copy(value) end return setmetatable(new_table, getmetatable(object)) end return _copy(object)end--Create an class.function class(classname, super) local superType = type(super) local cls if superType ~= "function" and superType ~= "table" then superType = nil super = nil end if superType == "function" or (super and super.__ctype == 1) then -- inherited from native C++ Object cls = {} if superType == "table" then -- copy fields from super for k,v in pairs(super) do cls[k] = v end cls.__create = super.__create cls.super = super else cls.__create = super end cls.ctor = function() end cls.__cname = classname cls.__ctype = 1 function cls.New(...) local instance = cls.__create(...) -- copy fields from class to native object for k,v in pairs(cls) do instance[k] = v end instance.class = cls instance:ctor(...) return instance end else -- inherited from Lua Object if super then cls = clone(super) cls.super = super else cls = {ctor = function() end} end cls.__cname = classname cls.__ctype = 2 -- lua cls.__index = cls function cls.New(...) local instance = setmetatable({}, cls) instance.class = cls instance:ctor(...) return instance end end return clsend
0 0
- Lua类继承(二)
- LUA面向对象程序设计(二)继承
- lua 类、继承、多重继承
- lua 类与继承
- lua继承c++类
- lua类的继承
- lua工具类(二)
- Lua继承(Lua学习一)
- Lua:table对象、类、继承、多重继承
- lua实现类与继承,多继承
- lua 类继承和实现
- lua模拟类的继承
- cocos2dx lua继承C++类
- Lua的类 和继承
- lua笔记1:类继承
- lua 类, 继承, 面向对象
- lua 类, 继承, 面向对象
- lua的类与继承
- 欢迎使用CSDN-markdown编辑器
- 为Eclipse添加PyDev插件
- 获取DIV内部内容报错
- VS2015--win32工程配置的一些想法之预处理器不起作用
- iOS CGContextRef画图小结
- Lua类继承(二)
- Android实现边录音边播放
- 开张第一篇
- color transfer between images论文实现
- HDU 1171
- 人工神经网络的设计与实现(二) 感知机
- 贝塞尔曲线 详解
- storyboard解析2
- iOS 使用动态库(dylib)和动态加载framework