加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 03:14:12 所属栏目:百科 来源:网络整理
导读:我有几个类除了在构造函数/析构函数中什么都不做.这是一个例子 class BusyCursor { private: Cursor oldCursor_; public: BusyCursor() { oldCursor_ = CurrentCursor(); SetCursor(BUSY_CURSOR); } ~BusyCursor() { SetCursor(oldCursor_); }}// example of
我有几个类除了在构造函数/析构函数中什么都不做.这是一个例子
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).

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

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

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

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

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读