gpt4 book ai didi

c++ - 指针对象成员的访问冲突

转载 作者:行者123 更新时间:2023-11-28 01:11:39 25 4
gpt4 key购买 nike

所以我正在编写这个客户端/服务器程序。此代码来自客户端。客户端有一个对象的实例

mpqs_sieve *instance_;

我将其作为指针的原因是,mpqs_sieve 只有一个接受 3 个参数的构造函数,我想在稍后的时间点实例化它。

客户端首先从服务器获取一些数据,并用它来实例化instance_。在此之后,它将请求更多数据,并在收到数据后(这是二次多项式的三个系数),它应该在 instance_ 对象中设置这些数据。但是,在调用 instance_ 的成员函数时,我在该函数调用中的 instance_ 成员之一遇到了访问冲突。

我在这里发布了我的代码: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);
// ...
}
};

有什么解决办法吗?

最佳答案

您正在将 instance_ 指针的拷贝传递给函数,而不是对变量的引用。当您分配给 instance_ 时,您正在修改局部变量,而不是具有相同名称的成员变量。

将函数参数更改为mpqs_sieve *&instance_

关于c++ - 指针对象成员的访问冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2713043/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com