好或坏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++指针和引用的选择最近在看...
关于vtordisp知多少?我相信不少人看到这篇文章,多半是来自...
那些陌生的C++关键字学过程序语言的人相信对关键字并...
命令行下的树形打印最近在处理代码分析问题时,需要将代码的...
虚函数与虚继承寻踪封装、继承、多态是面向对象语言的三大特...