如何从c ++中的* this获取值?

问题描述 投票:-1回答:1

我正在尝试使用通过读取*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;
}

我想在*thisload()中使用CIdBlkDb.cpp的值。请给我帮助。

c++ this
1个回答
0
投票
RTFM:C++ pointer tutorial

尽管我的C ++生锈了,但我会说:

std::cout << *this << “\n”;

将打印this的地址
© www.soinside.com 2019 - 2024. All rights reserved.