【发布时间】:2013-08-28 03:46:53
【问题描述】:
我参考了这个关于打印地图内容的链接:
所以我知道打印地图内容的基本知识,但是我不确定我是否以以下方式定义了我的地图,数据类型是类对象,其他代码如下所示:
typedef map <string, fsdbSig *> Pinname_sig;
Pinname_sig _Pinname_sig;
Pinname_sig :: iterator itPS;
我想知道打印地图内容的方式和上面的链接一样吗?
for (itPS = _Pinname_sig.begin(); itPS != _Pinname_sig.end(); ++itPS){
cout << "Jden-key:" << itPS->first << "," << "value:" << itPS->second <<endl;
}
如果是,那么何时使用重载运算符
嗨@电脑
struct fsdbSig
{
public:
friend std::ostream& operator<< (std::ostream& , const fsdbSig&); //jaden
char * _name; // signal name
fsdbVarType _type; // signal type
ushort_T _lbitnum; // signal left bit number
ushort_T _rbitnum; // signal right bit number
fsdbBytesPerBit _bpb; // signal byte per bit
byte_T _value; // signal value
fsdbSig(char * name, fsdbVarType type, ushort_T lbitnum, ushort_T rbitnum, fsdbBytesPerBit bpb, byte_T value ) // constructor
{
_name = name;
_type = type;
_lbitnum = lbitnum ;
_rbitnum = rbitnum ;
_bpb = bpb;
_value = value ;
}
};
但是发生错误 undefined reference to `operator
【问题讨论】:
-
我很困惑这个问题是关于如何将指向对象的指针发送到
std::ostream或如何为您的映射元素类型编写插入运算符。你能澄清一下这个问题吗(或者可能是both或都没有?)。 -
@WhozCraig Hi.Actually 这两个问题我希望知道答案。 :)