根据文档,Web服务器在.cpp类中初始化如下
WebServer server(80);
为了将其融入我创建的类中,我想这样做。
private:
WebServer server;
在我的标题和中
this->server = WebServer(80);
在我的类定义中,所以我有一个WebServer的正常声明。但这引发了一个错误:……">被隐式删除,因为默认定义格式不正确:
如何正确初始化Web服务器?
编辑:好的,现在我的代码看起来是这样的:
class MyClass{
public:
MyClass(String clientId, String clientSecret, String redirectUri);
private:
String clientId;
String clientSecret;
String redirectUri;
WebServer server;
};
和
MyClass::MyClass(String clientId, String clientSecret, String redirectUri):clientId{clientId}, clientSecret{clientSecret}, redirectUri{redirectUri}, server{80}{}
由于RAII,指令WebServer server;
尝试使用默认构造函数用类型为WebServer
的对象初始化变量。
要使用不同的构造函数来构造这个实例变量,必须在构造函数的初始化列表中提供它:
MyClass::MyClass()
:server{80}
{
}
这告诉编译器用初始化值80
构造server
对象,该初始化值依次提供给WebServer
的构造函数。