gpt4 book ai didi

c++ - 是否有一种代码密集度较低的方法来使用非默认构造函数初始化数组?

转载 作者:行者123 更新时间:2023-12-01 14:57:21 38 4
gpt4 key购买 nike

我有一个包含 4 个对象的数组,每个对象都使用非默认构造函数进行初始化,但是所有 4 个对象都使用相同的变量,无需更改。此代码有效,但是我想知道是否有一种代码密集度较低的方法来初始化每个对象,因为每个数组元素都只是用相同的值初始化?

Class1.h:
std::array<Arrow, 4> skillArrow

Class1.cpp:
Class1::Class1() : skillArrow{ Arrow("gfx/leftArrow.png", mouse, input), Arrow("gfx/leftArrow.png", mouse, input), Arrow("gfx/leftArrow.png", mouse, input), Arrow("gfx/leftArrow.png", mouse, input)
{
}
Arrow.h:
Arrow(const char* filePath, Sprite *mouseSprite, Input *input);

最佳答案

您可以使用这样的委托(delegate)构造函数:

struct Class1 {
private:
std::array<Arrow, 4> skillArrow;

Class1(Arrow const & arrow) : skillArrow{arrow, arrow, arrow, arrow} {}

public:
Class1();
};

Class1::Class1() : Class1(Arrow("gfx/leftArrow.png", mouse, input)) {}

关于c++ - 是否有一种代码密集度较低的方法来使用非默认构造函数初始化数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62744433/

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