我提到了這個鏈接有關打印地圖的內容:如何打印地圖內容與數據類型是一個類的對象
,所以我知道的印刷地圖內容的基礎上,但我不知道如果我定義我的與數據類型如下方式映射是一個類對象,並與其它的代碼,如下所示:
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;
}
如果是,那麼當使用重載操作< <,因爲我看到使用該方法的一些職位。
嗨@computer
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 ;
}
};
但發生錯誤未定義的參考`運營商< <(STD :: basic_ostream
我很困惑這個問題是關於如何發送一個指針到對象到一個'std :: ostream'或者如何爲你的映射元素類型寫一個插入操作符。你能否澄清這個問題(或者它的* *或*都不是那些?)。 – WhozCraig
@WhozCraig嗨,其實這兩個問題我都希望知道答案。 :) –