据我所知,在C++11之前,构造函数初始化列表中初始化成员数组的唯一方法是使用以下方式:
然而,有些人告诉我他们不赞成这种方法,最好在构造函数体中使用for循环对其进行零初始化,这样可能更安全/更易读。
由于我没有C++11支持,因此无法使用初始化列表等功能。是否有任何指导方针来阻止在构造函数初始化列表中初始化成员数组?
另外,测试表明,使用此语法来处理多维数组应该没有问题,对吗?(例如,这不是某些编译器由于某种原因而捣乱的标准的一部分...)
我的意思并不是这个问题具有主观性-我只是想知道是否有充分的理由使用/不使用上述语法。
非常感谢您的帮助。
MyClass::MyClass(int arg) : member(arg), memberArray() {
// anything else that needs to be done in the c'tor
}
然而,有些人告诉我他们不赞成这种方法,最好在构造函数体中使用for循环对其进行零初始化,这样可能更安全/更易读。
由于我没有C++11支持,因此无法使用初始化列表等功能。是否有任何指导方针来阻止在构造函数初始化列表中初始化成员数组?
另外,测试表明,使用此语法来处理多维数组应该没有问题,对吗?(例如,这不是某些编译器由于某种原因而捣乱的标准的一部分...)
我的意思并不是这个问题具有主观性-我只是想知道是否有充分的理由使用/不使用上述语法。
非常感谢您的帮助。
MyClass::MyClass(int arg) : member(arg), memberArray(some_function(arg))
,其中som_function
构造了你想要的值,也可以完美地工作。 - john