我有几个类除了在构造函数/析构函数中什么都不做.这是一个例子
class BusyCursor { private: Cursor oldCursor_; public: BusyCursor() { oldCursor_ = CurrentCursor(); SetCursor(BUSY_CURSOR); } ~BusyCursor() { SetCursor(oldCursor_); } } // example of use void DoSlowThing { BusyCursor busy; ... do something time-consuming ... }
我有点担心未来的可读性.我在这里太“巧妙”了,这个变量(“忙”)在代码中从来没有使用过?一些静态分析工具是否可以建议他们被删除,或者这个习惯是不是很常见呢?@H_301_5@
解决方法
这种技术很常见,被称为设计模式:
Resource Acquisition Is Initialization (RAII).
我会毫不犹豫地使用这种设计模式.@H_301_5@
使用这种设计模式进行编码要好得多,因为您将通过忘记重置游标或者所涉及的资源来避免错误.@H_301_5@
如果您担心其他程序员可能不了解它,那么这些程序员应该受到更多的教育.始终努力以最无错误的方式编码,使您和其他人无法自行拍摄自己.@H_301_5@
“一些静态分析工具可以建议他们被删除吗?”@H_301_5@
>没有静态分析工具会看到这是一个问题.
>不会给出编译器警告
>没有编译器优化会导致任何问题.@H_301_5@