gpt4 book ai didi

C++:如何初始化非整数类型的静态成员变量?

转载 作者:行者123 更新时间:2023-11-30 02:58:57 24 4
gpt4 key购买 nike

如何在 C++ 中初始化静态对象?我正在寻找类似 java 中的静态 block 的东西。

我试过这个:

Foo.hpp

class Foo{
public:
static Bar b;
static String s;
static Bar setB();
};

Foo.cpp

Bar Foo::b = Foo::setB();
String Foo::s = "something";
Bar Foo::setB()
{
Bar bb;
bb.use(s);
return bb;
}

没有编译错误,但是不行。

非常感谢

最佳答案

您的代码:

class Foo{
public:
static Bar b;
static Bar setB();
}

您的评论:

There is no compile error

那是不正确。由于缺少分号,它无法编译。

当指出这一点时,大多数 SO 发布者随后会在一些评论中声称“但这只是一个打字错误,我会更正它”,因此 通过使已发布的答案无效来加重错误。

简而言之,当您发布代码时,请复制并粘贴真实代码。不要重新输入它。复制并粘贴。

现在,对于核心问题,上述评论的延续,即

it's not working.

好吧,假设您的真实代码 有适当的分号,并且定义了 Bar 等,那么那部分也只是完全错误.

我用 Visual C++ 和 MingW g++ 对其进行了测试,并且(在针对分号等进行更正后)它工作正常。

关于C++:如何初始化非整数类型的静态成员变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13355511/

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