我正在尝试使用通过读取*this
中的文件(*.dat)
返回的c++
的值,但是我有一个问题。
代码如下。
// -------------- CIdBlkDb.h ----------------
class CIdBlkDb : private PtrData
{
... ... ..
}
// ---------------- CIdBlkDb.cpp ----------------
bool CIdBlkDb::load(const char *filename) {
readfromfile(filename);
return getlen() > 0 && (10 * _type_size == *GetHeadSize());
}
// ----------------- PtrData.h ------------------
Class PtrData
{
.... ....
public:
void readfromfile(const char *filename);
... ...
}
// -------------- PtrData.cpp -----------------
void PtrData::readfromfile(const char *filename)
{
*this = readfile(filename);
}
PtrData PtrData::readfile(const char *filename)
{
PtrData data;
std::ifstream file(filename, std::ios::in | std::ios::binary);
if (file.is_open())
{
// get length of file:
file.seekg(0, file.end);
int len = file.tellg();
file.seekg(0, file.beg);
if (len > 0)
{
char *buffer = new char[len];
file.read(buffer, len);
// file.close();
data.set(buffer, len);
delete[] buffer;
}
file.close();
}
return data;
}
我想在*this
的load()
中使用CIdBlkDb.cpp
的值。请给我帮助。