/*感谢任何查看此人并尝试回答它的人。我真的不想在这里浪费任何人的时间,但我在这方面已经打了三天左右的头。我意识到这对于理解它的人来说可能非常简单。我已经尝试了几乎所有可能的组合,但我仍然可以想到编译器错误。尝试将指针作为参数传递给指向文件的fstream成员
C:\随机\ RNDNUMTEST.cpp(41):错误C2102:“&”需要-1-值
我想传递一个指针作为参数的函数makeRndmNumber()的成员函数fstream.open()。我想打开RNDNUMTEST.cpp中的文件,然后将它传递给makeRndmNumber(),以便可以以某种方式修改它。我在网上寻找帮助,包括这个网站,但我觉得我忽略了一些重要或简单的东西,或者我只是完全忽略了这个概念。
这不是作业,我不是大学生。虽然我确实上过学,但是我已经完成了10多年的编程工作,从来没有真正明白过这一点。任何建议,将不胜感激。
// These are only excerpts from the actual files.
// RndmNum_Class.h file
typedef void(fstream::*fStream_MPT)(const char*); // fStream_MPT (Member Pointer Type)
class RandomNumber {
public:
RandomNumber();
~RandomNumber() {};
static void loadDigits(double, double, char array[]);
static int getLastNDigits(char array[], int);
static int makeRndmNumber(int, int, fStream_MPT);
};
//*************************************************************8
//RndmNum_Class.cpp file
int RandomNumber::makeRndmNumber(int seed, int _fileSize, fStream_MPT FILE) {
......
}
//**************************************************************/
// RNDNUMTEST.cpp file
#include "RndmNum_Class.h"
int main() {
const char* RNDM_FILE = "c:\\RandomFile.txt";
fstream FStream_Obj;
// FStream_Obj.open(RNDM_FILE);
fStream_MPT FileMembPtr = &FStream_Obj.open(RNDM_FILE);
//fStream_MPT FileMembPtr = &fstream::open;
int seed = 297814;
int size = 20000;
cout << RandomNumber::makeRndmNumber(seed, size, FileMembPtr);
return 0;
}