gpt4 book ai didi

c++ - 带参数 C++ 的对象数组的初始化列表

转载 作者:搜寻专家 更新时间:2023-10-31 00:14:41 38 4
gpt4 key购买 nike

在 C++ 中,我试图在我的构造函数中初始化一组对象,它们的构造函数接受一个或多个参数。我想在构造函数的初始化列表而不是它的主体上执行此操作。这可能吗?如何实现?

我的意思是:

class A{
public:
A(int a){do something};
}

class B{
private:
A myA[N];
public:
B(int R): ???? {do something};
}

我应该在 ???用参数 R 初始化数组 myA?

最佳答案

如果你有 C++11,你可以这样做:

B(int R) : myA{1, 2, 3, 4, 5, 6} { /* do something */ }

不过,如果您使用的是 Visual Studio 2013,请注意目前不支持此语法。但是,有以下解决方法(无论如何,这可以说是更好的风格):

#include <array>

class B {
std::array<A, N> myA;

public:
B(int R) : myA({1, 2, 3, 4, 5, 6}) {}
};

但是请注意,N 必须是编译时常量,并且初始化器的数量必须与初始化器的数量相匹配。

关于c++ - 带参数 C++ 的对象数组的初始化列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22151153/

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