好或坏C成语 – 纯粹用于构造函数/析构函数的对象?

前端之家收集整理的这篇文章主要介绍了好或坏C成语 – 纯粹用于构造函数/析构函数的对象?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有几个类除了在构造函数/析构函数中什么都不做.这是一个例子
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  ...
    }

我有点担心未来的可读性.我在这里太“巧妙”了,这个变量(“忙”)在代码中从来没有使用过?一些静态分析工具是否可以建议他们被删除,或者这个习惯是不是很常见呢?

解决方法

这种技术很常见,被称为设计模式: Resource Acquisition Is Initialization (RAII).

我会毫不犹豫地使用这种设计模式.

使用这种设计模式进行编码要好得多,因为您将通过忘记重置游标或者所涉及的资源来避免错误.

如果您担心其他程序员可能不了解它,那么这些程序员应该受到更多的教育.始终努力以最无错误的方式编码,使您和其他人无法自行拍摄自己.

“一些静态分析工具可以建议他们被删除吗?”

>没有静态分析工具会看到这是一个问题.
>不会给出编译器警告
>没有编译器优化会导致任何问题.

原因是因为创建了对象并调用了构造函数/析构函数.所以它不是一个未引用的变量.

猜你在找的C&C++相关文章