C++ - 在 C++ 类中初始化私有(private)数组

标签 c++ arrays

我在将数据存储到类中的私有(private)数组时遇到问题。

我试过谷歌但没有找到任何解决方案。

这是我的代码:

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);

这是我的问题——如何将数组保存到f中?

似乎使用指针 (*f.arr = array;) 实际上并没有改变 arr


我尝试通过添加 this solution

class Foo {
// ...
Public:
    Foo::Foo(int arr_, double d_) : arr_(new int[10]), d_(d) { };

但是 Visual Studio 2017 说数组没有初始化。


我也试过 this solution ,但是 VS 说不能修改这个范围内的数组。

请帮忙。提前谢谢你。

最佳答案

#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);
    }
    // ...
};

关于C++ - 在 C++ 类中初始化私有(private)数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53181697/

相关文章:

c++ - 继承真的不影响性能吗?

c++ - 指针可以指向局部变量的内存在它的范围之外吗?

javascript - 为什么我的对象没有将数据填充到图表中? (包括演示)

java - 在 Android MultipartMode POST 中发送多个嵌套 NameValue 数组

python - 将元素 append 到 numpy 数组中每个箭头的末尾

c++ - 我的数组循环出现(逻辑?)错误

c++ - QDate - 在两个日期之间搜索

C++11 具有与不同版本的 GCC 的兼容性

arrays - 隐式类适用于所有 Traversable 子类,包括 Array

java - ArrayList 初始化等价于数组初始化