我有两个班级:
tcp_server和tcp_connection tcp_server有一个tcp_connection指针对象的列表,我正在做的是通过指针将这个列表传递给tcp_connection,它将负责从驱逐舰上的列表中加入和删除它自己。
tcp_server:
private:
std::list<std::weak_ptr<tcp_connection>> connections;
// passing reference to the tcp_connection
new_connection->join(&connections);
tcp_connection:
private:
std::list<std::weak_ptr<tcp_connection>>* connections;
public
void join(std::list<std::weak_ptr<tcp_connection>>* con)
{
connections = con;
connections->push_back(shared_from_this());
}
确定。一切都运作良好;但是,如果我尝试删除tcp_connection驱逐舰上的连接指针,服务器崩溃。
我试图弄乱智能指针,但我迷失了它。在将tcp_server方法传递给JOIN之前,是否在tcp_server方法上创建unique_ptr,并使用std :: move传递给tcp_connection作为参考?
如何提高效率?