有可能在C++中重写这个虚拟方法吗

Is it possible to override this virtual method in C++?

本文关键字:虚拟 方法 重写 C++ 有可能      更新时间:2023-10-16

在这个程序中,我试图从串行端口读取数据,但从端口读取的数据不是我喜欢的格式(以大块形式出现)。所以我想覆盖ReadBytes的工作方式。

BSTR buffer_bstr;
hr = pCom->ReadBytes( &buffer_bstr );

因此ReadBytes是在ActiveXperts公司制造的名为AComport.h的库头中找到的。当我转到ReadBytes的声明时,它就是这个

    virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ReadBytes( 
        /* [retval][out] */ BSTR *__MIDL__IComPort0001) = 0;

这是在说什么?我一直在寻找ReadBytes的实现,这样我就可以改变周围的事情,但我看到的只是这个。这是什么意思?

这不是一个"真正的"C++函数,但它是COM对象上的一个成员函数,以C++包装器的形式呈现。除非您实现一个实现相同COM接口的对象,否则您无法轻松重写或重载此函数。