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

nut*_*ich 1 c++ arrays setter class operator-overloading

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

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

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)
}
Run Code Online (Sandbox Code Playgroud)

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

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

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

RoQ*_*riX 5

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

对于您的 setter 函数,您可以给出 aint* pointernumber of elements

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

然后你可以在 main() 中调用你的 setter 函数,如下所示:

int main() {
    numberList list1;
    int arr[] = {1,2,3,4,5,6,7};
    list1.setter(arr, 7);
}
Run Code Online (Sandbox Code Playgroud)

  • 对于“n &gt; 8”来说这看起来非常危险 (2认同)