IntArray::IntArray (int *array, int sz)
{
_size = sz;
int ia = new int[_size];
for (int ix=0; ix<_size; ++ix)
ia[ix] = array[ix];
}
你好,我目前正在学习 Stanley Lipmann 为初学者编写的 C++,我正在学习如何在类的帮助下创建抽象数组。有人可以解释一下这段代码的作用吗?据我猜测,它将“sz”值(来自类外)分配给“_size”,然后我们创建“ia”动态数组,毕竟它将“数组”指针(类外)的值分配给“ia” “大批。谢谢:D
最佳答案
那不可能是完整的代码,_size
在哪里定义的?是类(class)成员吗?前导下划线表明。我假设 ia
也是 int *
类型的类成员。
它所做的是将sz
的值复制到(大概)成员变量_size
中。然后它分配一个新的 int
数组。 for
循环然后将给定数组中的元素复制到分配的新内存中。看名字它会告诉你这是一个构造函数。它通过复制给定数组构造一个新的 int
数组。
顺便说一下,缩进你的代码,这样它更容易阅读,也更容易理解!
IntArray::IntArray(int *array, int sz) {
_size = sz;
ia = new int[_size];
for (int ix = 0; ix < _size; ++ix)
ia[ix] = array[ix];
}
您可以使用令人惊叹的 clang-format
来满足您所有的格式化需求。
您可以将const
放入array
和sz
参数中,这样您还可以创建新的IntArray
来自常量数组的实例。
关于c++ - 这段代码有什么作用? (C++,类和数组),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41002932/