If the receiver of a request can be represented in an address space-independent way, then you can transfer a command object for the request to a different process and fulfill the request there.
来自:http://www.worldcat.org/isbn/9780201633610
在 C++ 中如何以独立于地址空间的方式表示对象?
编辑:如何在 C++ 中以独立于地址空间的方式表示对象,以便能够将命令对象传输到不同的进程并能够满足请求?
最佳答案
我手头没有那本设计模式:可重用面向对象软件的元素书,但我猜作者的意思是算法不应该依赖于对象地址的实际值.
所以如果你在某个键上使用一些哈希表,你不会使用键的地址进行哈希,而是使用与键的内容相关的一些哈希。
您不希望程序的可观察行为依赖于 ASLR .
要与其他进程通信,最好使用serialization技术和格式(例如 JSON )并且您不希望该格式取决于实际地址(特别是,它不应该因为 ASLR 而改变)。
这并不意味着在最低级别,对象不包含地址或指针(因为指针在 C++ 中无处不在)。它只是意味着您不会关心这些地址的特定数值。
关于c++ - 对象的地址空间独立表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34715130/