迫使某些东西在C中被破坏

迫使某些东西在C中被破坏,第1张

概述我正在开发一个C app,它内部有一些控制器对象,这些控制器对象是定期创建和销毁的(使用new).这些控制器必须将自己注册到另一个对象(让我们称之为controllerSupervisor),并在它们被销毁时取消注册. 当我退出应用程序时,我现在面临的问题是:由于破坏的顺序不是确定性的,因此在控制器本身(某些)之前,单个controllerSupervisor实例被破坏,并且当它们调用unregi 我正在开发一个C app,它内部有一些控制器对象,这些控制器对象是定期创建和销毁的(使用new).这些控制器必须将自己注册到另一个对象(让我们称之为controllerSupervisor),并在它们被销毁时取消注册.

当我退出应用程序时,我现在面临的问题是:由于破坏的顺序不是确定性的,因此在控制器本身(某些)之前,单个controllerSupervisor实例被破坏,并且当它们调用unregister方法时他们的破坏者,他们是在一个已被破坏的物体上这样做的.

到目前为止我想出的唯一想法(有一个很大的冷,所以这可能并不重要)并没有将controllerSupervisor作为堆栈上的全局变量,而是在堆上(即使用new).但是在那种情况下我没有地方可以删除它(这都是第三方类型的库).

任何可能的选项的提示/建议将不胜感激.

解决方法 您可以使用Observer模式.控制器向其主管传达它正在被销毁的信息.并且主管在破坏时将其传达给它的孩子.

看看http://en.wikipedia.org/wiki/Observer_pattern

总结

以上是内存溢出为你收集整理的迫使某些东西在C中被破坏全部内容,希望文章能够帮你解决迫使某些东西在C中被破坏所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1237376.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存