私はc++プログラム(I / Oストリームを処理する)で最初の大きな「クラス」をプログラミングしており、オブジェクト、メソッド、および属性の概念を理解したと思います。私はまだカプセル化の概念のすべての権利を取得していないと思いますが、Fileというクラスに持ってもらいたいので
- 名前(ファイルのパス)、
- 読書ストリーム、および
- ライティングストリーム
属性として、
また、Fileオブジェクトの「書き込みストリーム」属性を実際に取得する最初のメソッド...
#include <string>
#include <fstream>
class File {
public:
File(const char path[]) : m_filePath(path) {}; // Constructor
File(std::string path) : m_filePath(path) {}; // Constructor overloaded
~File(); // Destructor
static std::ofstream getOfstream(){ // will get the private parameter std::ofStream of the object File
return m_fileOStream;
};
private:
std::string m_filePath; // const char *m_filePath[]
std::ofstream m_fileOStream;
std::ifstream m_fileIStream;
};
しかし、エラーが発生します:
エラー4エラーC2248:'std :: basic_ios <_Elem、_Traits> :: basic_ios':クラスで宣言されたプライベートメンバーにアクセスできません' std :: basic_ios <_Elem、_Traits>'c:\ program files(x86)\ microsoft visual studio 10.0 \ vc \ include \ fstream 1116
fstream.ccの次の部分に私を報告します:
private:
_Myfb _Filebuffer; // the file buffer
};
次に、これを修正して、クラスのパラメーターとしてストリームを使用できるようにしてください。ストリーム自体の代わりに参照を返そうとしましたが、それについてもいくつかの助けが必要になります(どちらも機能しません...)。前もって感謝します