私の質問は、どのように、
while(cin>>x)
{
//code
}
仕事。より具体的に言えば、ループを停止するコードについてはどうでしょうか。
ドキュメントhereから、>> 演算子が を返すように見えます&istream
。それは、読み取りが失敗したり、ファイルの終わりに達した場合、eofbit、failbit、または badbit を設定するだけでなく、null を返すことを意味しますか? それは本当に意味がないので、それだと思います。
eofbit の何らかの暗黙のチェックはありますか?
このような2つのクラスで似たようなものを実装したいと思っているので、私は尋ねます.
class B
{
//variables and methods
}
class A
{
//Variables and methods
//Container of B objects. ex. B[] or vector<B> or Map<key,B>
&A >> (B b);
}
int main()
{
A a;
B b;
while( a >> b)
{
//Code
}
}
注:istream
この作業を行う魔法がどこから来たのかを除いて、継承するつもりはありません。その理由は、クラスとその依存関係をできるだけ小さく保ちたいからです。から継承すると、すべてのパブリックおよび保護されたものを受け取り、同様のオブジェクトistream
を作成しようとはしていません。本当に素敵な一枚istream
をコピーしたいだけです。
編集:私はVisual Studio 2010を使用しています(これは本当に苦痛になりつつあります)。C++03 +いくつかのC++11の実装と互換性のあるものが必要になります。