2

次のようなクラスのベクトル メンバーが必要です。

class A
{
private:
vector<ifstream> _files;
public:
bool addFile(const string& filePath);
};

bool A::addFile(const string& filePath)
{
ifstream ifile(filePath.c_str());
_files.push_back(ifile);//but errors;
}

このクラスを正常にコンパイルして終了するにはどうすればよいですか。

今私の解決策はベクターを使用することです。それは大丈夫ですか?またはいくつかの潜在的な危険?

4

1 に答える 1

2

STL コンテナーには、要素がCopyConstructibleおよびAssignableである必要があります。std::ifstreamコピー不可です。代わりにスマート ポインターを使用する必要がありますstd::ifstream

于 2013-07-24T09:25:02.837 に答える