unique_ptr的这两种用途有什么区别



类 ">a" 包含service_属性:类型为 boost::asio_ioservice 和 sock_boost::asio::ip::tcp::socket 类型的unique_ptr

以下构造函数代码存在,sock_正确指向新的套接字对象。

a::a() : service_(), sock_(new boost::asio::ip::tcp::socket(service_))
{
}

以下构造函数代码没有。调试器将sock_列为"空"。

a::a() : service_(), sock_(nullptr)
{
     sock_(new boost::asio::ip::tcp::socket(service_));
}

为什么?

作为声明:

sock_(new boost::asio::ip::tcp::socket(service_));

根本不是有效的 C++。你想过吗

sock_.reset(new boost::asio::ip::tcp::socket(service_));

相反?

sock_ = std::make_unique<boost::asio::ip::tcp::socket>(service_);

相关内容

  • 没有找到相关文章

最新更新