Lua仿C++面向对象实现(LuaOO)

本文介绍了Lua中一种仿C++面向对象的实现方式,包括支持new()和delete()操作,遵循C++构造和析构函数的调用顺序,以及允许派生类访问覆盖的子类方法。通过示例代码和实际运行输出,展示了该实现的用法。
摘要由CSDN通过智能技术生成

该实现的特性

  • 支持类似C++的 new() 和 delete() 函数
  • 构造(ctor)和析构(dtor)函数会自动按C++顺序调用(ctor从最底层基类开始调用,dtor从高上层派生类调用)
  • 派生类中可以访问被覆盖的子类方法

实现代码

function class(super)
    local cls = {}

    if super then
        setmetatable(cls, {__index = super})
        cls.super = super
    end

    function cls.new(...)
        local instance = setmetatable({}, {__index = cls})
        --instance.class = cls

        local create
        create = function(c,...)
            local superCls = rawget(c, "super")
            if superCls then
                create(superCls,...)
            end
            
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值