当您不必处理指针时,将结构复制/移动到另一个结构非常容易。
不过,就我而言,我必须处理指针和访问权限。
protected:
addrinfo *hints, *result;
...
hints = new addrinfo;
...
getaddrinfo(0, port.c_str(), hints, &result); // result is protected - can't do that.
memmove/memcpy
可以使用,但addrinfo
包含指向其sockaddr
内部的指针。我想使用一个临时结构来传递getaddrinfo
然后将所有内容移动到result
,但问题总是存在。
如果您需要其他详细信息,请告诉我。
编辑:@Mike Woolf 你给了我一个想法。由于基类是一个抽象类,我什至可以将这些结构公开,因为用户无法实例化它。不过感谢您的回答。