次のようにクラスで宣言された fstream オブジェクトがあります(単なる例):
class Asd {
public:
Asd();
private:
std::fstream stream;
};
コンストラクターが呼び出されたときに、次のように fstream パラメーターを指定したい
Asd::Asd() {
this->stream = std::fstream(file, std::fstream::in);
}
そして、私が持っているすべてのクラス関数でそのストリームを使用しますが、機能しません。VSが私に与えている1つのエラーは次のとおりです。
no accessible path to private member declared in virtual base 'std::basic_ios<_Elem,_Traits>'
だから私はそれを読んで、私が見つけることができるのは、私がストリームをコピーできない(というか、コピーすべきではない)ということだけです。実際、私はそれをしたくさえありません。これをコンストラクターに追加できると誰かが言った:
Asd::Asd() : stream(file, std::fstream::in) {
...
}
しかし、それは同じエラーを出力し、何をすべきかわかりません...また、他の誰かがオブジェクトを参照する必要があると言いましたが、方法がわかりません?? これを機能させたいだけですが、わかりません:(
編集:これは完全なエラーメッセージです
1>c:\program files (x86)\microsoft visual studio 10.0\vc\include\istream(860): error C2249: 'std::basic_ios<_Elem,_Traits>::operator =' : no accessible path to private member declared in virtual base 'std::basic_ios<_Elem,_Traits>'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files (x86)\microsoft visual studio 10.0\vc\include\ios(177) : see declaration of 'std::basic_ios<_Elem,_Traits>::operator ='
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> This diagnostic occurred in the compiler generated function 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::operator =(const std::basic_istream<_Elem,_Traits> &)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1>c:\program files (x86)\microsoft visual studio 10.0\vc\include\ostream(604): error C2249: 'std::basic_ios<_Elem,_Traits>::operator =' : no accessible path to private member declared in virtual base 'std::basic_ios<_Elem,_Traits>'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files (x86)\microsoft visual studio 10.0\vc\include\ios(177) : see declaration of 'std::basic_ios<_Elem,_Traits>::operator ='
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> This diagnostic occurred in the compiler generated function 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator =(const std::basic_ostream<_Elem,_Traits> &)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]