我有这个问题:
问题:
我正在尝试创建一个用于管理和处理的库(ard33WiFi)
几个其他库(例如WiFiServer库)
我需要创建服务器对象,然后将其用于库(ard33WiFi)中的函数:WiFiServer myServer(iPort);
问题是,当我在类的成员中调用myServer时,会得到:'myServer' was not declared in this scope
我在哪里/如何声明myServer,以便对整个类(ard33WiFi)可用?我已经抽出了一切,因为我所尝试的都是错误的。我在下面粘贴了框架代码。
// HEADER FILE (.h)
// ----------------------------------------------------------------------------------------------
#ifndef Ard33WiFi_h
#define Ard33WiFi_h
#include <WiFiNINA.h>
#include <WiFiUdp.h>
class ard33WiFi{
public:
ard33WiFi(int iPort)
void someFunction();
void serverBegin();
private:
int _iPort;
};
#endif
// ----------------------------------------------------------------------------------------------
// C++ FILE (.cpp)
// -----------------------------------------------------------------------------------------------
#include <Ard33Wifi.h>
ard33WiFi::ard33WiFi(int iPort){
_iPort = iPort;
}
void ard33WiFi::someFunction(){
// code here required to prepare the server for initializing
// but ultimately not relevant to the question
}
void ard33WiFi::serverBegin(){
myServer.begin();
Serial.println("Server Online");
}
我遇到了与UDP库相同的问题,因为我需要在各种函数中调用UDP对象来执行UDP操作。
任何帮助将不胜感激。
最佳答案
我想您正在使用此:
https://www.arduino.cc/en/Reference/WiFiServer
我可以看到您没有在类中声明myServer;我猜这是您的代码中的错误。如果我没看错,应该是这样的:
#ifndef Ard33WiFi_h
#define Ard33WiFi_h
#include <WiFiNINA.h>
#include <WiFiUdp.h>
#include <WiFi.h> // Not sure if you have to append this include
class ard33WiFi{
public:
ard33WiFi(int iPort)
void someFunction();
void serverBegin();
private:
int _iPort;
WiFiServer myServer;
};
#endif
实现时,您需要初始化实例:
#include <Ard33Wifi.h>
ard33WiFi::ard33WiFi(int iPort):myServer(iPort), _iPort(iPort) {
}
void ard33WiFi::someFunction(){
// code here required to prepare the server for initializing
// but ultimately not relevant to the question
}
void ard33WiFi::serverBegin(){
myServer.begin();
Serial.println("Server Online");
}
关于c++ - 在类中创建对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58567082/