1

印刷マップのコンテンツについては、次のリンクを参照しました。

マップ コンテンツの印刷

したがって、マップコンテンツの印刷の基本は知っていますが、データ型がクラスオブジェクトであり、以下に示すように他のコードを使用して、次の方法でマップを定義したかどうかはわかりません。

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;
}

はいの場合、メソッドを使用していくつかの投稿を見たので、いつオーバーロード operator<< を使用するか。

こんにちは@コンピュータ

  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 ;
        }   

};

しかし、`operator<<(std::basic_ostream への未定義の参照エラーが発生します

4

1 に答える 1