我在将数据存储到类中的私有数组时遇到问题。
我尝试使用Google,但没有找到任何解决方案。
这是我的代码:
Foo.h
class Foo {
private:
int arr[10];
double d;
public:
Foo::Foo(double d) {
this->d = d;
}
// ...
};
Foo.cpp
int main() {
double d = 123.456;
int array[10];
// Getting data from user input by for-loop 10 times.
Foo f = Foo(d);
这是我的问题-如何将 array 保存到 f 中?
好像使用指针(*f.arr = array;
)并不会改变 arr 。
我尝试通过添加
this solutionclass Foo {
// ...
Public:
Foo::Foo(int arr_, double d_) : arr_(new int[10]), d_(d) { };
但是Visual Studio 2017表示未初始化数组。
我也尝试过this solution,但是VS说无法在此范围内修改数组。
请帮助。预先谢谢你。
答案 0 :(得分:2)
#include <algorithm> // std::copy()
#include <iterator> // std::size()
class Foo {
private:
int arr[10];
double d;
public:
Foo(double d, int *data)
: d{ d }
{
std::copy(data, data + std::size(arr), arr);
}
// ...
};