aihot  2020-11-12 09:23:24  OpenCV |   查看评论   
params);

上面的代码就可能会出问题,除非能保证tfs在tempDir之前先初始化,否则tempDir的构造函数会用到尚未初始化的tfs。

解决方案:

C++保证,函数内的local static对象会在该函数被调用期间,首次遇到该对象的定义的时候被初始化。

所以如我们把tfs和tempDir设计为一个函数,函数返回该类的一个static对象引用就可以解决问题了。

所以我们可以改写上面的代码:

FileSystem& tfs()  {      static FileSystem fs;      return fs;  }  Directory& tempDir()  {      static Directory td;      return td;  }

请记住

 

除特别注明外,本站所有文章均为 赢咖4注册 原创,转载请注明出处来自Effecvtive C++笔记:让自己习惯C++

留言与评论(共有 0 条评论)
   
验证码:
[lianlun]1[/lianlun]