我有一个简单的设置
class Container {
Handler h;
}
所有的 Container 对象都有一个“warning()”方法。我还想有一种方法从 Handler 对象中输出警告,但使用包含对象的工具发送这些警告。
我确实意识到在包含的对象中保存对容器的引用是奇怪的(通常包含的对象不应该知道任何关于它的容器的信息)。现在,在带有闭包的语言中,我会这样做(想象的语法):
h.set_warning_handler { | char* message |
this->warning(message)
}
但我在 C++ 中工作,它不是使用 Apple 方言之类的地方。解决这个问题的首选方法是什么?或者只是设置该参考并忘记它?