   implicit casting between reference types in script
I have the following in C++:class Base{public:    void Foo() { ... }};class Derived : public Base{};I then bind these types as follows:RegisterObjectType("Base",0, asOBJ_REF | asOBJ_NOCOUNT);RegisterObjectType("Derived",  0, asOBJ_REF | asOBJ_NOCOUNT);RegisterObjectMethod("Base", "void Foo()", asMETHODPR(Base, Foo, (), void), asCALL_THISCALL);RegisterObjectBehaviour("Base", asBEHAVE_REF_CAST, "Derived@ f()", asFUNCTION((refCast<Base,Derived>)), asCALL_CDECL_OBJLAST);RegisterObjectBehaviour("Derived", asBEHAVE_IMPLICIT_REF_CAST, "Base@ f()", asFUNCTION((refCast<Derived,Base>)), asCALL_CDECL_OBJLAST);Then in script I have the following:void main(Derived& d){  d.Foo();}I expect the registered implicit conversion to apply to 'd' and call (in C++) d.Foo(), which should resolve to Base's Foo(). However, I get the following compilation error: No matching signatures to 'Derived::Foo()' Am I doing anything wrong with how I'm registering the implicit cast? Or would it only take effect for assignment/function params/etc and not what I'm trying to do? Thank you very much.
  You've registered the ref casts correctly. The problem is as you suspected that the implicit cast is not done in this case.Instead you need to register the inherited methods in the derived class too.This is documented here: http://www.angelcode.com/angelscript/sdk/docs/manual/doc_adv_class_hierarchy.html#doc_adv_class_hierarchy_2;Thank you very much - I ended up doing something similar.