在切换到 C++ 之前,我们发现initialization
Delphi 中的语言元素非常有用。它允许您在每个单元中拥有在程序启动时调用的代码,因此您可以初始化该单元的各个元素。
我们认为这确实使事情变得更容易并有助于保持代码整洁。
等效的 C++ 功能是文件范围/全局对象的构造函数和析构函数。例如:
#include <iostream>
using std::cout;
struct X {
X() { cout << "X::X()\n"; }
~X() { cout << "X::~X()\n"; }
};
static X x;
int main() { cout << "main()\n"; return 0; }
将输出
X::X()
main()
X::~X()
运行时。
通常认为使用此功能是不明智的,因为您无法控制这些构造函数和析构函数的执行顺序,这意味着事物可能会在其依赖项之前进行初始化,从而产生难以调试的崩溃。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)