/*感謝任何查看此人並嘗試回答它的人。我真的不想在這裏浪費任何人的時間,但我在這方面已經打了三天左右的頭。我意識到這對於理解它的人來說可能非常簡單。我已經嘗試了幾乎所有可能的組合,但我仍然可以想到編譯器錯誤。嘗試將指針作爲參數傳遞給指向文件的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;
}