<分区>
标签 c++ arrays constructor
<分区>
假设我们有一个像下面这样的类:
class myprogram {
public:
myprogram ();
private:
double aa,bb,cc;};
myprogram::myprogram():aa(0.0),bb(0.0),cc(0.0){}
如您所见,我们可以使用 myprogram() 构造函数初始化私有(private)成员的 aa、bb、cc。
现在,假设我有一个很大的私有(private)数组 G_[2000]。我如何使用构造函数将此数组的所有值初始化为 0。
class myprogram {
public:
myprogram ();
private:
double aa,bb,cc;
double G_[2000];};
myprogram::myprogram():aa(0.0),bb(0.0),cc(0.0){}
最佳答案
在构造函数体中使用 std::memset
函数。
例如,
myprogram::myprogram()
: aa{0.0}, bb{0.0}, cc{0.0}
{
std::memset(G_, 0, 2000 * sizeof(double));
}
但是,如果您在初始化列表中使用大括号 {}
,它将设置默认初始化对象(如果是数组,它将用零填充)。
关于c++ - 如何在 C++ 中使用构造函数(只是构造函数)初始化类中的大型私有(private)数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59729491/