だから私はこのクライアント/サーバープログラムをコーディングしています。このコードはクライアント側のものです。クライアントにはオブジェクトのインスタンスがあります
mpqs_sieve *instance_;
ポインターとして作成する理由は、mpqs_sieve には 3 つの引数を取るコンストラクターしかなく、後でインスタンス化する必要があるためです。
クライアントはまずサーバーからデータを取得し、これを使用して instance_ をインスタンス化します。この後、さらにデータを要求し、これを受け取ると (これらは 2 次多項式の 3 つの係数です)、instance_ オブジェクトにこれらを設定する必要があります。ただし、instance_ のメンバー関数を呼び出すと、その関数呼び出し内の instance_ のメンバーの 1 つでアクセス違反が発生します。
ここにコードを投稿しました: on pastebinで、100 行目にエラーが表示されます。呼び出しは 71 行目から、その 21 行目より前に発生します。抜粋は次のとおりです。
class client_protocol {
public:
static std::string parse_message(
network_message& msg, mpqs_sieve *instance_)
{
// ...
return set_mpqs_data(m.substr(i+1), instance_);
}
private:
static std::string set_mpqs_data(
std::string data, mpqs_sieve *instance_)
{
instance_ = new mpqs_sieve(n, M, FB_count);
// ...
}
};
これを解決するためのアイデアはありますか?