在 C++ 中没有静态构造函数的理由是什么?
如果允许,我们将在一个地方以一种非常有组织的方式初始化其中的所有静态成员,如下所示:
//illegal C++
class sample
{
public:
static int some_integer;
static std::vector<std::string> strings;
//illegal constructor!
static sample()
{
some_integer = 100;
strings.push_back("stack");
strings.push_back("overflow");
}
};
在没有静态构造函数的情况下,很难有静态向量,并用值填充它,如上所示。静态构造函数优雅地解决了这个问题。我们可以以非常有组织的方式初始化静态成员。
那么为什么'C++'没有静态构造函数呢?毕竟,其他语言(例如 C#)都有静态构造函数!