如何在 C++ 中的 class 中设置数组

How to set an array in a class in C++

我想使用 setter 方法将数字数组存储在 class 的私有变量中,但不确定如何操作。

该程序需要默认构造函数和其他基本方法,但为简单起见,我只提供了默认构造函数。

class numberList{
public:
    numberList()
    {
        numberStore = new int[8];
    } // default constructor

    void setter() // not sure what goes here
    {
        //not sure what goes here
    }

private:
    int* numberStore;
};

int main()
{
    numberList list1;
    list1.setter(1,2,3,4,5,6,7)
}

我希望 list1.setter() 将所有值放入数组中。我认为 memcpy() 可以在这里使用,但我不确定。

我知道有运算符重载的概念,但不确定如何利用它。任何帮助将不胜感激:-)

编辑:不幸的是,作业要求我不要使用标准库:-(

根据您不能使用 STL 的评论,解决方案是使用原始 C 指针算法。

你可以给你的 setter 函数一个 int* pointernumber of elements:

void setter(int* arr, int n) {
    for(int i = 0; i < n; i++)
        numberStore[i] = arr[i]
}

然后你可以像这样在 main() 中调用你的 setter 函数:

int main() {
    numberList list1;
    int arr[] = {1,2,3,4,5,6,7};
    list1.setter(arr, 7);
}
#include "pch.h"
#include <iostream>
#include <string>

int* my_array = new int[10];

void setter(int* arr, int n)
{
    memcpy(&my_array[0], &arr[0], n * sizeof(int));
}


int main()
{
    int* arry = new int[10];
    for (int i=0; i< 10; i++)
    {
        arry[i] = i;
    }

    setter(arry, 10);

    for (int i = 0; i < 10; i++)
    {
        std::cout<<(std::to_string(my_array[i]));
    }
}