初期化子リストを使用して、コンストラクターでプライベートstd::ofstream
(たとえば、で開かれたファイル)を初期化したいと考えています。main
次のコードがあります。
class MyClass{
std::ofstream ofs;
public:
MyClass(const std::ofstream &ofs): ofs(ofs) { }
};
次のコンパイルエラーが発生します。
error C2248: 'std::basic_ofstream<_Elem,_Traits>::basic_ofstream' : cannot access private member declared in class 'std::basic_ofstream<_Elem,_Traits>'
with
[
_Elem=char,
_Traits=std::char_traits<char>
]
c:\program files (x86)\microsoft visual studio 11.0\vc\include\fstream(1034) : see declaration of 'std::basic_ofstream<_Elem,_Traits>::basic_ofstream'
with
[
_Elem=char,
_Traits=std::char_traits<char>
]
ここで何が起こっているのですか?