"... is implicitly deleted because the default definition would be ill-formed:" - Web Server() 对象的初



根据文档,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的构造函数。

最新更新