クラスメモPart2

本に沿って、Fileクラスも自分で作る。

//File.h
class File {
public:
	File(const char* filename);
	~File();
	int getSize() const; //constメンバ関数はなるべくつける。
	unsigned getUnsigned() const;
	const char* getData() const;
private:
	int mSize;
	char* mData;
};


//File.cpp
#include "File.h"
#include <fstream>
using namespace std;


File::File(const char* filename) : mSize(0),mData(0) {
	ifstream in(filename, ifstream::binary);
	
	in.seekg(0,ios::end);
	mSize = static_cast<int>(in.tellg()); //C言語でのキャストよりもC++流に指定したほうが良い。
	in.seekg(0,ios::beg);
	mData = new char[mSize];
	in.read(mData, mSize);
	in.close();
}

File::~File() {
	delete mData;
}

int File::getSize() const {
	return mSize;
}

const char* File::getData() const {
	return mData;
}
//getUnsignedはまだ実装していない。

次は、Mapクラスの原型を作りたいと思う。