c++ - 关于阅读有效c++项目4的问题(用局部静态变量替换非局部静态变量)
问题描述
class FileSystem {
...
int numDisks();
...
};
FileSystem& theFileSystem() // this replaces the theFileSystem object
{
static FileSystem fileSystem; // define and initialize a local static object
return fileSystem;
}
class Directory {...};
Directory::Directory()
{
...
std::size_t disks = FileSystem::theFileSystem().numDisks();
...
}
书上要求我们用局部静态变量替换非局部静态变量,但是当我们FileSystem::theFileSystem().numDisks()
多次调用时,它会声明static FileSystem fileSystem
多次,这应该不好,对吧?
解决方案
推荐阅读
- git - 有没有办法可以锁定文件在 git master 分支上被修改?
- mysql - 服务器返回无效的时区。转到高级选项卡并手动设置 servertimezone 属性
- powershell - 远程 Powershell 脚本导致 Selenium 超时
- node.js - Firebase RTDB 批处理事务(同时增加 2 个值)
- javascript - 如何使用 JS 制作幻灯片
- c# - 在多个 Web 窗体和 DLL 中使用数组
- android - 调整编辑文本的大小
- python - scikit-learn:`gen_batches()` 的功能是什么?这个怎么运作?
- css - 在组件内部引用 SCSS 变量
- java - 更新地图
> 以线程安全的方式