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() 可以在这里使用,但我不确定。
我知道存在运算符重载的概念,但不确定如何利用它。任何帮助,将不胜感激 :-)
编辑:不幸的是,作业要求我不要使用标准库:-(
根据您的评论,您不能使用 STL,解决方案是使用原始 C 指针算术。
对于您的 setter 函数,您可以给出 aint* pointer和number 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)