1

誰かが私を正しい方向に向けることができるかどうか疑問に思っています。名前空間 std; を含めると機能する友人抽出演算子があります。しかし、そうしないと失敗します。誰でも私にヒントを与えることができますか?

ostream& operator << (ostream &out, coins &value)

これはフレンド関数でもあるため、これを class.h ファイル (フレンドとして) の functions.h ファイル (プロトタイプとして) と functions.cpp ファイル (ロジック) に含めます。

作ってみた

std::ostream& operator.... std::ostream& operator std::<< (など)

しかし、どこが間違っているのかわかりません。私のコンパイラは、「ostream は型に名前を付けていません」と言い続けます

ありがとうございました

4

1 に答える 1

2

それは名前空間にostream存在するものです、しないでください(それは意味がありません!)。プログラミングへのショットガンアプローチを少なくするようにしてください。つまり、機能するまでランダムなことを試してはいけません。エラーは(修飾されていない)問題であることを示しているため、最初にその問題を解決する必要があります。stdstd::<<ostream

#include <iostream>

struct coins
{
    friend std::ostream& operator<<(std::ostream& sink, const coins& value);
};

std::ostream& operator<<(std::ostream& sink, const coins& value)
{
    sink << "doing coins output";
    return sink;
}

int main()
{
    coins c;
    std::cout << c << std::endl;
}

ちなみに、これはデータをストリームに挿入するための挿入演算子です。抽出はになります>>

于 2013-02-27T18:18:21.957 に答える