quick中类连续继承的问题

类A

local A = class("A",function()
    return display.newSprite()
end)

function A:ctor()
    print("A被调用")
end

return A

```


类B
local B = class("B",import(".A"))
    
function B:ctor()
    self.super.ctor( self )    print("B被调用")
end

return B

```


类C
local C = class("C",import(".B"))
    
function C:ctor()
    self.super.ctor( self )    print("C被调用")
end

return C

```


这样在使用C.new()的时候会报错,如下所示
LUA ERROR: stack overflow
stack traceback:
: in function '__index'

=====================================
=====================================

当将代码中红色部分换成
B.super.ctor( self )
C.super.ctor( self )之后,则C.new()就没有错误了.请问这是什么原因呢?

代码中红色没有显示出来,就是 self.super.ctor()换成下面的部分就没错了

请仔细分析一下,在子类调用时,父类里self.super.ctor()的self和self.super是指哪个table。分析不明白的话把地址打印出来看看

楼上说得不错。
正确的写法应该是:

C.super.ctor( self )

B.super.ctor( self )

lz的写法会在B.ctor里面无限循环导致stack overflow

谢谢了.
谢谢楼上的诸位.:7: