私は多項式のためのC++クラスを実装するための学校プロジェクトに取り組んでいます。私のクラスがすると思われるものは、標準入力から、またはファイルから多項式を読み込んだものです。私は私のfavorite c++ reference siteで次を読むまで、私は>>のオーバーロードについて考えた:C++クラスのグローバル関数getlineのオーバーロード
はistream抽出操作が セパレータとして空白を使用していることに注意してください、したがって、この操作はのみ ストリームから単語を考えることができるものを抽出します。テキストの全行を抽出するには、 はグローバル関数getlineの文字列のオーバーロードを参照してください。
私は多項式クラスのグローバル関数getlineをオーバーロードして、ファイルから行全体を読み込むことができます。ストリーム抽出演算子に過負荷をかける方法を説明するチュートリアルや記事がたくさんありますが、getlineについての詳細は見つかりませんでした。しかし、私はそれを過負荷にする必要がありますか?参照から、これはどのように行われているように見えます。
私が見たオーバーロードされたgetline関数(リンクされたページの最下部など)の中には、「basic_istream」のようなものが返されていることに気付きました。私はちょうどistreamを返すだけで十分ですか? "char_type"はどうですか?チャーは十分でしょうか?
基本的に私には知っておきたいことは、これらのものが過負荷になっているのか、それとも気になるべき細かいディテールがあるのかということです。
これは私が調理してきたヘッダーです:
class Polynomial {
public:
friend istream& getline(istream& is, Polynomial & poly);
friend istream& getline(istream& is, Polynomial & poly, char delim);
};
friend istream& getline(istream& is, Polynomial & poly) {
return getline(is, poly, '\n');
}
friend istream& getline(istream& is, Polynomial & poly, char delim) {
// read enough tokens to make a term
// stop when we get to the delimiter
return is;
}
感謝を!
目的が目的の名前と一致しない関数を意図的に書くのはなぜですか? –