- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在阅读Programming: Principles and Practices using C++, 2nd Edition这本书时,我想到了以下声明:
...what do you do if you really need a global variable (or constant) with a complicated initializer? A plausible example would be that we wanted a default value for a Date type we were providing for a library supporting business transactions:
const Date default_date(1970,1,1); // the default date is January 1, 1970
How would we know that default_date was never used before it was initialized? Basically, we can’t know, so we shouldn’t write that definition...
让我对这行代码感到好奇的是在定义之前使用全局变量的隐含思想。作者 (Bjarne Stroupstrup) 在初始化之前使用全局变量到底是什么意思?当然,可以在其他地方声明该变量。但是没有提到那个场景。
最佳答案
如果在其他地方的全局范围内声明了另一个具有复杂构造函数的对象,则您没有实际的方法来 specify the relative initialization order of these two objects in a portable manner .对于任何一个对象,您都不能期望在引用另一个对象之前已经构造了另一个对象。
在有意义的地方声明全局单例对象本质上没有错,只要充分理解未指定全局对象在不同翻译单元中的相对初始化顺序即可。
关于c++ - 为什么全局定义 "const Date default_date(1970,1,1);"是坏的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40824924/
在阅读Programming: Principles and Practices using C++, 2nd Edition这本书时,我想到了以下声明: ...what do you do if y
我是一名优秀的程序员,十分优秀!