gpt4 book ai didi

c++ - 在构造函数初始化列表中初始化成员数组(C++11 之前)

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:30:37 26 4
gpt4 key购买 nike

据我所知,在 C++11 之前,在构造函数初始化列表中初始化成员数组的唯一方法是执行以下操作,例如:

MyClass::MyClass(int arg) : member(arg), memberArray() {
// anything else that needs to be done in the c'tor
}

但是,有几个人告诉我他们不喜欢这种方法,并且在构造函数主体的 for 循环中将其零初始化可能更安全/更具可读性.

我还没有可用的 C++11 支持,所以我不能使用初始化列表等。是否有任何人听说过不鼓励在构造函数初始化列表中初始化成员数组的指南?

此外,测试表明没有,但是将此语法用于多维数组应该没有任何问题,对吗? (例如,这不是某些编译器出于某种原因搞砸的标准的一部分......)

我并不是说这是一个主观问题 - 我只是想知道是否有充分的理由使用/不使用上述语法。

非常感谢您的帮助。

最佳答案

你可能想看看这个 related question在 StackOverflow 上:使用静态函数初始化初始化列表中的成员数组可以实现您正在寻找的内容:

class MyClass
{
typedef std::array< int, 2 > t_myA;
static t_myA fillFunction(){ static t_myA const ret = {1,2}; return ret; };

t_myA myArray;

public MyClass();
}

MyClass::MyClass()
: myArray( fillFunction() )
{
}

关于c++ - 在构造函数初始化列表中初始化成员数组(C++11 之前),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13380551/

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