如何指向不同类中的函数

how to point to functions in different calsses

我用 C++ 为 pic32mx575f512h 写了一个程序。处理器有 6 个 uart,程序将 uart 数据包从一个路由到另一个。该程序是使用两个通用 classes 编写的。接收 class 和发送 class。当这些 classes 的对象被声明时,一个带有设置的结构被传递给它们以使它们唯一。

为了简化这些对象的互连,接收 class 被传递给一个发送 class 指针数组。当一条消息到达时,对于任何其他 uart 上的 uart "one",接收 class 通过使用地址作为数组索引从数组调用适当的发送 class。例如: send_pointer[received_address]->data_put()... 该代码已经过测试并且运行良好。

现在我需要进一步扩展代码以通过 USB 添加调试。 USB 堆栈已得到处理,我只需要一种方法将数据从接收 class 传递到发送 class,包括 USB 功能。我挣扎的地方是 USB 发送处理程序与 UART 发送完全不同 class。我想向发送指针数组添加另一个成员,但这是不可能的。我已经尝试制作一个函数指针数组,但 C++ 不允许将 class 的成员存储在函数指针中。

有没有其他方法可以做到这一点,这样我仍然可以使用地址作为邮件需要去往的位置的索引?

为了执行 class 的方法,您要么需要实例,要么必须将方法声明为静态方法。

在互联网上搜索 "c++ FAQ pointer to member function"。

您可能需要重新设计程序或使用工厂设计模式。