/ * Спасибо всем, кто смотрит на это, кто может попытаться ответить на него. Я действительно не пытаюсь тратить здесь чье-то время, но я бился об этом около трех дней. Я понимаю, что это, наверное, очень просто для тех, кто понимает это. Я перепробовал почти все возможные комбинации, и все равно получаю ошибки компилятора.
C: \ random \ RNDNUMTEST.cpp (41): ошибка C2102: '&' требует l-значение
Я пытаюсь передать указатель в качестве параметра функции 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;
}