我有以下结构:
typedef struct{
int pktType;
void* sourcePeer;
void* destPeer;
void* aboutPeer;
int tree;
std::vector<int> cogSize; //LEAVE ?
std::vector<void*> newParents; //JOIN_REP
}packet;
另外,我有一个名为的类,base_peer
声明如下:
class base_peer
{
...
public:
virtual void createMessage(int, base_peer*, base_peer*, base_peer*, int, std::vector<int>&, std::vector<base_peer*>&, packet*);
...
}
createMessage()
函数定义如下:
void base_peer::createMessage(int msgType, base_peer* msgSourcePeer, base_peer* msgDestPeer, base_peer* msgAboutPeer, int msgAboutTree, std::vector<int>& msgCogSize, std::vector<base_peer*>& newParents, packet* newPacket)
{
newPacket->pktType = msgType;
newPacket->sourcePeer = msgSourcePeer;
newPacket->destPeer = msgDestPeer;
newPacket->aboutPeer = msgAboutPeer;
newPacket->tree = msgAboutTree;
newPacket->cogSize = msgCogSize;
newPacket->newParents = newParents;
}
我想createMessage
创建一个数据包结构并为其元素分配值。更具体地说,当我尝试将 vector 分配给 vector 时,就会发生std::vector<void*> newParents
错误std::vector<base_peer*>& newParents
。
我从 Eclipse 收到以下错误:
没有已知的参数 1 从 'std::vector' 到 'const std::vector&' 的转换
std::vector<_Tp, _Alloc>& std::vector<_Tp, _Alloc>::operator=(const std::vector<_Tp, _Alloc>&) [with _Tp = void*; _Alloc = std::allocator]
'newPacket->packet::newParents = newParents' base_peer.cpp 中的 'operator=' 不匹配
我会很感激你的帮助。