![]() |
1
3
我没有这个 设计模式:可重用面向对象软件的元素 我想作者的意思是算法不应该依赖于对象地址的实际值。 因此,如果在某个键上使用哈希表,则不会使用键的地址进行哈希,而是使用与键内容相关的哈希。 您不希望程序的可观察行为依赖于 ASLR . 要与其他流程沟通,您最好使用 serialization 技术和格式(例如。 JSON )而且您不希望该格式依赖于实际地址(特别是,它不应该因为ASLR而改变)。 这并不意味着在最底层,对象不包含地址或指针(因为指针在C++中无处不在)。这只是意味着您不会在意这些地址的特定数值。 |
![]() |
2
2
关于您的问题更新:
这是通过使用反序列化来实现的 命令对象 传输到另一个进程和适当的IPC技术(最简单的传输是基于套接字的通信IMHO)。 没有用于反序列化/序列化的c++标准惯用解决方案,但是 google protobuf 或 boost::serialization 是一个很好的帮助。 |
![]() |
3
1
我想,你引用的这段话来自命令模式。 有关这种模式的描述也可以在各种网站上找到。例如。 https://en.wikipedia.org/wiki/Command_pattern . 命令模式最常见的表现形式是,与命令相对应的数据以独立于地址空间的方式传输:
我相信还有更多的技术可以让您在远程机器或其他进程中执行命令。它们只能工作,因为命令可以以独立于地址空间的方式表示,并可以跨网络或跨进程边界传输。
如果命令的发送方和接收方能够就基本类型的数据表示达成一致,例如
|
![]() |
Zax Ftw · 如何获取用于memcpy的浮点地址? 7 年前 |
![]() |
Safron · OpenCL何时使用全局、私有、本地、常量地址空间 7 年前 |
![]() |
q126y · 对象的地址空间独立表示 9 年前 |
|
Justin O'Brien · 打印指针地址与与号地址之间的差异 10 年前 |
|
user3267522 · 为什么我的程序输出内存地址? 11 年前 |
![]() |
theleos · C: 相同尺寸二维阵列与普通阵列的差异 11 年前 |