lua如何覆盖c++方法?

问题如下:
有一c++类A,A有两同名,不同参的两个方法
A::fun()
A::fun(int val)

A::fun(int val)被c++类B调用

别有一lua类C继承了c++类A
我想在lua类C中写一个覆盖c++ fun(int val)的方法,要自动被c++类B调用,有人知道这个应该怎么做吗?

需要将A::fun(int val)写成虚函数,在C中对这个方法进行重写,C++类调用时,生成一个lua类C实例, 再通过这个实例来调用C类中的fun(int val)