c++ - 这段代码有什么作用? (C++,类和数组)

标签 c++ arrays class

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 放入arraysz 参数中,这样您还可以创建新的IntArray 来自常量数组的实例。

关于c++ - 这段代码有什么作用? (C++,类和数组),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41002932/

相关文章:

javascript - 如何在对象数组中找到具有最高值的对象?

php - 是否有与 PDO::FETCH_CLASS 等效的 INSERT 或 UPDATE?

javascript - 如何判断 HTML 元素是否具有 JavaScript 中的特定类?

c++ - 如何在插入过程中更改插入的值?

c++ - 使用 OPENMP 的并行归并排序

java - 将字符串拆分为具有未定义空格的数组

c++ - 将一个数组分配给另一个数组 C++

java - 类、对象和实例之间的区别

c++递归数组解释

c++ - 避免为自定义类使用初始化列表