Omnet ++问题:将标准容器类用于抽象L3Address SlectedNodes的字段[]; //将使用std :: vector吗?

时间:2018-11-09 16:53:55

标签: omnet++

我想对抽象L3Address SlectedNodes的字段使用标准容器类[]; //将使用std :: vector吗?我做了以下消息声明:

在此处输入代码

packet PacketData {
@customize(true);
abstract L3Address SlectedNodes[]; // will use std::vector<L3Address >
}

在生成的C ++代码中,我编写以下C ++文件:

#include <iostream>
#include <sstream>
#include "PacketData_m.h"
class PacketDataPacket : public PacketData_Base
{
protected:
std::vector<L3Address> SlectedNodes;// SlectedNodes= SlectedNodes
// helper method
void unsupported() {throw cRuntimeError("unsupported method called");}
public:
// SlectedNodes methods
virtual L3Address getSlectedNodes(unsigned int k) {return SlectedNodes[k];}
virtual void setSlectedNodes(unsigned int k, const L3Address& SlectedNodes) 
{SlectedNodes[k]=L3Address& SlectedNodes;}
virtual void addSlectedNodes(const L3Address& SlectedNodes) 
{SlectedNodes.push_back(L3Address& SlectedNodes);}
virtual void setSlectedNodesArraySize(unsigned int size) 
{SlectedNodes.resize(size);}
virtualL3Address getSlectedNodesArraySize() const {return 
SlectedNodes.size();}
};
Register_Class(PacketData);

一些其他样板代码

 PacketData_Base::PacketData(const char *name=nullptr, int kind=0) 
:PacketData_Base(name,kind) {
}
PacketData_Base:: PacketData(constPacketData& other) 
:PacketData_Base(other.getName()) {
operator=(other);
}
PacketData& operator=(const PacketData& other) {
if (&other==this) return *this;
PacketData_Base::operator=(other);
 SlectedNodes = other.SlectedNodes;
}
virtualPacketData *dup() {
 return newPacketData(*this);
}

是否将标准容器类(STL)用作字段,但是 std::vector< L3Address> IntVector;是真的吗?有什么问题吗?

0 个答案:

没有答案