资源管理问题
现有资源用RAII封装在类A中。类B,C,D通过A的接口访问资源。我的设计是在BCD中各自保存一个指向A的指针或者引用。但是这不可避免的产生A已经过了生存期,但是BCD却不会被通知,这样就产生segfault了。如果不引入A向BCD反馈的机制,如何防止上述的错误发生呢?
[解决办法]
不做反馈,还真的没有啥好办法呢。。。因为A的释放是不确定的,检查机制也不太好使
一般这样的需求采用引用计数,当引用计数为0的时候才给删除。。。
[解决办法]
不反馈的话 用全局变量记录生存状态 可行么?
[解决办法]
资源类A的生存期 没有设成全局变量,和程序一样长 ?难道 是局部变量?
[解决办法]
观察者模式 吗
[解决办法]
在BCD中A的指针初始值设为NULL,
A的指针过了生存期删除后也把A的指针赋值为NULL
在BCD中要用A的指针前判断是不是这个指针为NULL.