ファイルを読み込み、保護された変数に格納しようとしています。すべてのメソッドは同じクラスにあります。ファイルを読み込み、C++で保護された変数に格納します
class A: public B
{
public:
//method declarations
protected:
string d;
};
void A::l(std::string filename)
{
ifstream ifs;
ifs.open(filename);
string d { istreambuf_iterator<char> {ifs}, istreambuf_iterator<char> {} };
ifs.close();
}
void A::f(void)
{
std::cout << d.length() << std::endl;
}
私は、文字列の長さを印刷しようとすると、私は(Fでd
を印刷しようとすると、それは)0ですが、何も印刷されません。私はd
が保護された変数である必要があり、その方法も変更できません。読み込みファイルの文字列をf
メソッドに渡すにはどうすればよいですか?それでも解決しない場合、あなたはおそらく間違ったファイル名を指定している
this->d.assign(istreambuf_iterator<char> {ifs}, {});
:
あなたのメンバ 'string d'ではなく、' A :: l() 'メソッドの中のローカル'文字列d 'に保存します。 –