をostreamに参考として(C++)
-
26-09-2019 - |
質問
私は学校の宿題のヘッダファイルを提供しており、変わらぬ.Imでお困りのコーヒーに飽きたら寿司にどのように正しく使用の"表示"機能で、ここでは、関係コードです。
のヘッダファイル:
#ifndef SET_
#define SET_
typedef int EType;
using namespace std;
#include <iostream>
class Set
{
private:
struct Node
{
EType Item; // User data item
Node * Succ; // Link to the node's successor
};
unsigned Num; // Number of user data items in the set
Node * Head; // Link to the head of the chain
public:
// Various functions performed on the set
// Display the contents of the set
//
void display( ostream& ) const;
};
#endif
ここでは私の実装の関数"の表示":
void Set::display( ostream& Out ) const
{
Node * temp = Head;
cout << "{ ";
while( temp != NULL )
{
cout << temp << ", ";
temp = temp->Succ;
return Out;
}
}
このドライバ:
#include <iostream>
#include <iomanip>
#include "/user/cse232/Projects/project08.set.h"
using namespace std;
int main()
{
Set X;
X.insert(10);
X.insert(20);
X.insert(30);
X.insert(40);
X.display();
}
エラーの私を受けると言うものである私のドライバーを利用していませんし、正しいパラメータ。私はこれを理解できます。hファイルを使ostream&としてのパラメータとします。私の質問は、あなたは何を使用している私のドライバファイルを呼び出す時に"表示"としてのパラメータ?
解決
になっているということに display
期待のパラメータの型 std::ostream &
.
ご表示のメソッド実装は、出力する std::cout
る覚をロジックを受けてから出力ストリームのパラメータとしての研究"に関するお問合せここでのポイントのパラメータの display
呼び出しを提供することができる出力ストリームの選択です。さら選択する標準出力に出力、書き:
x.display(std::cout);
にあるということ display
実装では出力の Out
パラメータな std::cout
.
でも受験をお考えの方はご注意
- ご
display
の実装を返す値でよいはずがありません(void
戻り値の型) - を利用したい
std::
接頭辞の私の回答のための明確な必要な場合としてのヘッダファイルが含まれてusing namespace std;
.
他のヒント
何をする必要があなたはCOUTを使用しているすべての場所のために代用です。またx.display(COUT)のようなパラメータとしてCOUTを渡します。 COUTは型のostreamオフになり、すべてこの初期化はiostreamの中で行われているためです。
あなたの表示方法では、明示的にCOUTを使用しています。しかし、これは「標準外」です。この方法ではなく、アウト使用する必要があります。だから、ディスプレイ()で、ちょうどアウトとCOUTのすべての発生を置き換えます。
次に使用ディスプレイ(COUT)。 お電話での
あなたはostreamにオブジェクトを渡していません。このように変更します:
X.display(cout);
次に、あなたのクラスでアウトとCOUTの出現をすべて置き換えます。 また、表示機能のconstのostream&代わりの空隙を返す必要があります。また、代わりのostreamのconstのostreamに参照を使用する必要があります。
これは、クラスのオペレータ外部を使用することが標準である
const ostream & operator<< (const ostream & Out, const Set & set)
{
// display your Set here using out, not cout
return out;
}
あなたのようなことを行うことができますこの方法:
cout << "This is my set: " << mySet << endl;