/* これを見て、答えようとする人に感謝します。ここで誰かの時間を無駄にするつもりはありませんが、この件で約 3 日間頭を悩ませてきました。それを理解している人にとっては、おそらく非常に簡単だと思います。考えられるほとんどすべての組み合わせを試しましたが、コンパイルエラーが発生します。
C:\random\RNDNUMTEST.cpp(41): エラー C2102: '&' には左辺値が必要です
メンバー関数 fstream.open() の関数 makeRndmNumber() にパラメーターとしてポインターを渡そうとしています。RNDNUMTEST.cpp でファイルを開き、それを makeRndmNumber() に渡して、何らかの方法で変更できるようにしたいと考えています。この Web サイトを含め、オンラインでヘルプを探しましたが、何か重要なことや単純なことを見落としているように感じたり、単に概念を完全に見逃しているだけかもしれません.
これは宿題ではありません。私は大学生ではありません。そのために学校には通っていましたが、プログラミングを始めてから 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;
}