我正在尝试创建一个类,它是用于处理具有特定状态的消息的处理程序。当准备好消息时,我希望创建一个state_t
引用新y
数据的新结构。然后我希望能够通过相同的state
变量访问新对象。带有指针的最小示例如下:
class Handler {
int x; // something config for the handler
struct state_t {
int *y;
state_t(int *y) : y(y) {}
};
std::optional<state_t> state;
Handler(int x) : x(x), state(std::nullopt) {}
void prepare_message(int *y) {
state = state_t(y);
}
void handle_state() {
// do something with the y e.g. send it over a socket
}
};
我想知道是否有一个好的方法可以使用引用而不是指向 的指针来实现这一点y
。直接替换它不会编译,因为复制赋值被隐式删除了。能以一种优雅的方式解决这个问题吗?