我有一个类(class),在其成员中包括另一个类(class)的对象。

头文件如下所示:

class LinxArduinoEthernetListener : public LinxListener
{
   EthernetServer ArduinoTcpServer(uint16_t);

其中,EthernetServer本身是一个类(在Arduino EthernetServer.h库中定义)。

因为我在编译时不知道端口,但是服务器对象应该是侦听器类的成员,所以我允许在类构造函数中初始化服务器对象,然后尝试使用以下代码重新分配该对象。 (在相应的.cpp文件中):
ArduinoTcpServer = EthernetServer(port);

其中“端口”是uint16_t。据我所知,这是将新构造的实例重新分配给对象变量的正确方法。

但是,编译器给我以下错误:



我认为这可能与我在随后的后续函数调用中遇到的错误有关:



但是我要说的是,它确实具有一个类类型,即头文件中指定的EthernetServer类。

我在这里做错了什么?

最佳答案

EthernetServer ArduinoTcpServer(uint16_t);声明一个名为ArduinoTcpServer的成员函数。要声明成员变量,请省略参数类型和括号。还添加一个构造函数以初始化成员变量,例如:

class LinxArduinoEthernetListener : public LinxListener
{
    public:
        EthernetServer ArduinoTcpServer;

        LinxArduinoEthernetListener(uint16_t port)
        : ArduinoTcpServer(port)
        {
        }
};

10-08 08:21