Kev*_*n J 1 c++ arrays initialization fill
我希望一个类的所有函数都可以访问一个数组.
我把数组作为私有变量放在头文件中.
private:
int* arrayName;
Run Code Online (Sandbox Code Playgroud)
在我实现类的.cpp文件中,构造函数接受一个int值(大小)并创建数组.目标是填补它
ClassName::ClassName(int numElements){
arrayName = new int[numElements]; //make arrays the size of numElements
for(int i = 0; i<numElements; i++)
arrayName[i] = 0;
}
Run Code Online (Sandbox Code Playgroud)
我觉得这样效率很低.我知道你可以做int array [5] = {0}; 但是如果你最初不知道尺寸,你怎么做呢.
如果要对新建数组进行零初始化,只需对其进行值初始化即可.这具有零初始化其元素的效果:
arrayName = new int[numElements]();
// ^^
Run Code Online (Sandbox Code Playgroud)
但你真的想要使用std::vector<int>
.
private:
std::vector<int> vname;
Run Code Online (Sandbox Code Playgroud)
和
ClassName::ClassName(int numElements) : vname(numElements) {}
Run Code Online (Sandbox Code Playgroud)
这样您就不必担心删除数组并实现复制构造函数和赋值运算符.