如何在 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* pointer
和 number 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]));
}
}
我想使用 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* pointer
和 number 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]));
}
}