0
我设计的分布式算法,我已经如下分离的功能性:C++具体类型与多个实现
class Peer {
public:
void send(PeerId destination, ...) //send some data
}
class MyDistributedAlgorithm {
public:
MyDistributedAlgorithm(Peer& self);
doX(); //calls self.send()
}
这样分离出来的值是我可以重新用于不同实现的算法Peer(tcp/ip套接字或线程等)
我意识到的一件事是PeerId可能取决于Peer的实现,但MyDistributedAlgorithm需要存储具有类型PeerId键的映射,因此它必须是具体类型。
我在C++中相当缺乏经验,在C中,我对这个问题的解决方案是将PeerId定义为void *,并且只是为每个Peer实现进行强制转换。在C++中有更好的方法吗?
你可以贬低你的解释吗?我不确定你的经典继承层次结构是什么意思(基类是什么,派生类是什么?)或者与指针有什么关系。 PeerId是不可变的。 – dschatz
在这里可用的小空间中,我无法真正解释继承或多态。我建议你得到一个好的教学文本,比如_Programming:Principles and Practice Using C++ _(由Stroustrup编写)并研究它。继承是C++中的基本工具之一。 –
对不起,我不清楚。我理解继承。我不知道你如何提出我在这里使用它。 – dschatz