你说的发送功能和转发功能是什么意思助推。Python?

2024-05-17 12:13:59 发布

您现在位置:Python中文网/ 问答频道 /正文

有谁能帮助我理解在boostpython中重写类成员函数并围绕基类创建包装器时,分派函数和转发函数是什么意思?你知道吗

例如:

Virtual Functions with Default Implementations

下面是一个无需转发功能即可正常工作的示例:

class Base
{
    public:
virtual void xfoo(int i)
    {
        cout << "XFOO::BASE" << i;
    }

        Base(){}
        Base(const Base&){}
};

class BaseW : public Base, public wrapper<Base>
{
    public:
    void xfoo(int i)
    {
        if(override f= this->get_override("xfoo"))
        {
            f();
        }
        Base::xfoo(i);
    }

};

class BaseImpl : public Base
{
    public:
    void xfoo(int i)
    {
        cout << "xFoo:Der " << i;
    }
};
BOOST_PYTHON_MODULE(hello)
{
    class_<BaseW, boost::noncopyable >("Base")
        .def("xfoo",&Base::xfoo)
        ;
    class_<BaseImpl, bases<Base> >("BaseImpl");
}

Tags: 函数分派base成员public基类classint
1条回答
网友
1楼 · 发布于 2024-05-17 12:13:59

“dispatch function”是在派生类类型上“切换”以确定虚拟函数的哪个实现应该执行的实现。就像一个纯粹的虚拟函数。“转发函数”似乎是指虚拟函数的默认(基类)实现。你知道吗

我也觉得这个术语有点混乱。但它只用于传递Boost文档,我认为它在总体方案中不太重要。尽量不要被它挂住。你知道吗

相关问题 更多 >