aa={}function aa.init(selff,a,b) selff.aa=a selff.bb=bendfunction aa:jiafa() print(self.aa+self.bb)endaa:init(9,8)aa:jiafa()for k, v in pairs(aa) do print(k,v)endFR:徐海涛(hunk Xu)QQ技术交流群:386476712
Lua
的类
个人觉得
Lua
并不能算是一门面向
对象
的
语言
;因为
Lua
它是定位于
开发
中
小型程序,往往不会用于编写大型程序;
下面这是一个
Lua
中
的一个简单的类的实现
local a = {name="lisi"}
function a:new( o )
o = o or {}
setmetatable(o,self)
self.__index = self
return o
function a:MyPrint( )
print(self.name)
local tb =
Lua
的面向
对象
Lua
语言
本身并没有提供面向
对象
的语法机制,这需要我们自己设计实现一套类的机制。首先,对于面向
对象
来说,我们至少需要类和
对象
这两个概念。同时,类至少包含一个用于构造
对象
的方法。对应到
Lua
上,就是一个代表类的table,它有一个构造函数,返回代表该类
对象
的table:
Class = {}
function Class:New()
local o = {}
return o
local inst = Class:New()
另外,一个类可以定义若干的方法,该类的
Lua
通过元表可以实现面向
对象
。当然,这种面向
对象
并不是真的面向
对象
,而是类似于一种原型模式,从一个已有的table
中
clone出另一个table。
Lua
自身是不支持面向
对象
的。本文来写一个简单的
Lua
面向
对象
实现。
local class_mt = {}
function class_mt:__index(key)
return self.__baseclass[key]
[AVProVideo] Error: Loading failed. File not found, codec not supported, video resolution too high
m0_66925556:
C++ 控制台打印无输出 无法查找或打开PDB文件
m0_65320862:
c++析构函数的调用