我有一个类(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)
{
}
};