class Parent;
class Child;
Parent *parent;
ifstream inf("file.csv");
inf >> *parent;
//in parent class
friend istream& operator>> (istream &is, Parent &parent) {
return parent.read(is);
}
virtual istream& read(istream &is){
char temp[80];
is >> temp;
// then break temp into strings and assign them to values
return is;
}
//virtual istream& read
最初の 2 つの値のみを読み取り、Parent クラスに割り当てます。Child
クラスにはParent
独自のクラス値 + 3 があります。
親の関数を呼び出してread()
から子の関数を呼び出して、親のread()
関数がファイルの最初の 2 つのフィールドを読み取り、子が次の 3 つのフィールドを読み取るようにするにはどうすればよいですか?
構文の問題であることはわかっています。その方法がわかりません。子の読み取りクラス内で呼び出してParent::read(is)
みましたが、子のread()
;の前に呼び出してみました。私は試しread(is) >> temp
ましたが、どれもうまくいきませんでした。そしてを呼び出すParent::read(is)
とis >> temp
、親is
はファイルの 5 つの値すべてを返します。