gpt4 book ai didi

c++ - 类的静态成员是否可以与其在 C++ 中所属的类的类型相同

转载 作者:太空宇宙 更新时间:2023-11-03 10:34:40 24 4
gpt4 key购买 nike

假设我有

class : foo
{
public:
static const foo Invalidfoo;
foo();
foo(int, string);
private:
int number;
std::string name;
};

它是否安全或容易出现任何问题?

编辑:

我想用它来返回一个无效对象作为启动错误的引用。

最佳答案

这是完全合法的,但下面的更好:

class foo:
{
public:
static const& foo Invalidfoo()
{
static foo Invalidfoo_;
return Invalidfoo_;
}

private:
foo();
};

这样可以保证对象在第一次使用时被初始化。

编辑:但无论你怎么做,你仍然有一个全局对象,这可能是问题的原因。最好的解决方案可能是每次需要默认构造的对象时调用默认构造函数。就效率而言,差异可能可以忽略不计。

关于c++ - 类的静态成员是否可以与其在 C++ 中所属的类的类型相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6362324/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com