我创建了一个类:

    Data::Data(char szFileName[MAX_PATH]) {

    string sIn;
    int i = 1;

    ifstream infile;
    infile.open(szFileName);
    infile.seekg(0,ios::beg);

    std::vector<std::string> fileRows;
    while ( getline(infile,sIn ) )
    {
      fileRows.push_back(sIn);
    }
}

之后,我创建了这个:
std::vector<std::string> Data::fileContent(){
        return fileRows;
}

之后,我想在某个地方调用此fileContent(),如下所示:
Data name(szFileName);
MessageBox(hwnd, name.fileContent().at(0).c_str() , "About", MB_OK);

但这不起作用...该怎么称呼?

最佳答案

std::vector<std::string> fileRows;
while ( getline(infile,sIn ) )
{
   fileRows.push_back(sIn);
}

不起作用,因为您在构造函数中声明了fileRows,一旦构造函数结束,fileRows被销毁。

您需要做的是将fileRows声明移出构造函数,并使其成为类成员:
class Data
{
...

   std::vector<std::string> fileRows;
};

那么它将由该类中的所有函数共享。

10-04 21:25