gpt4 book ai didi

C++:数组的构造函数初始化器

转载 作者:IT老高 更新时间:2023-10-28 13:20:53 33 4
gpt4 key购买 nike

我脑筋急转弯...如何在 C++ 中正确初始化对象数组?

非数组示例:

struct Foo { Foo(int x) { /* ... */  } };

struct Bar {
Foo foo;

Bar() : foo(4) {}
};

数组示例:

struct Foo { Foo(int x) { /* ... */  } };

struct Baz {
Foo foo[3];

// ??? I know the following syntax is wrong, but what's correct?
Baz() : foo[0](4), foo[1](5), foo[2](6) {}
};

编辑:我们很欣赏狂野而疯狂的变通方法,但在我的情况下它们对我没有帮助。我正在开发一个嵌入式处理器,其中 std::vector 和其他 STL 构造不可用,显而易见的解决方法是创建一个默认构造函数并具有一个可以调用的显式 init() 方法在构建时间之后,所以我根本不必使用初始化程序。 (这是我被 Java 的 final 关键字 + 构造函数的灵 active 所宠坏的情况之一。)

最佳答案

编辑:见 Barry's answer对于最近的东西,我回答时没有办法,但现在你很少局限于 C++98。


没有办法。你需要一个数组成员的默认构造函数,它会被调用,之后你可以在构造函数中做任何你想要的初始化。

关于C++:数组的构造函数初始化器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2409819/

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