c++ - 对象的地址空间独立表示

标签 c++ design-patterns memory-address command-pattern address-space

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/

相关文章:

c++ - 将 C 程序转换为 C++

c++ - std::string 的每个字符的地址

python - 如何从 Python 中的指针地址读取?

c++ - 获取函数地址时的奇怪行为

c++ - 这种资源泄漏是由可能的评估顺序提供的还是 Scott Meyers 错了?

C++: protected 类构造函数

c++ - Linux 内核中的 C func 签名 : include/linux/sched. h

c# - 有没有一种方法可以使用一种方法来处理其他方法以避免代码重复?

java - 带服务注入(inject)的 spring 链接构造函数

c++ - 初始化单例的const成员变量