c++ - 返回私有(private)数组

标签 c++ arrays pointers private

我有一个类,并且有一个数组设置为私有(private)。如何创建 get_array() 函数?我的意思是,知道我必须返回 arr[0] 的指针,我该如何返回该数组,但这不是违反了私有(private)规则吗?有其他方法返回这个数组吗?

我实际上想到了将 array2 放在 main 中,然后使用类函数编辑该数组。我认为如果上述方法不起作用,这将是一个 B 计划。

最佳答案

您不能从函数返回数组。正如您所说,您可以返回指向数组第一个元素的指针,但这有一个缺点,即您必须具有一些单独的功能才能从类外部获取数组的大小。

更好的选择是返回一个包含数组的结构。最简单的方法是使用 array 类,可以在 in Boost 中找到该类。以及许多标准库的实现。

例如,

class C
{
public:
    typedef boost::array<int, 5> ArrayType;
    ArrayType get_array() const { return array_; }

private:
    ArrayType array_;
};

关于c++ - 返回私有(private)数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3478377/

相关文章:

c++ - 特殊类模板的类外构造函数定义

c - 传递的双指针在循环期间被破坏?

尝试重新排列数组时 C++ 程序崩溃

c - 为什么字符串数组的最后一个索引在 C 中不打印任何内容?

c++ - 字符串*还是字符*?

c++ - 当全局/静态对象崩溃时创建对象,而本地对象则不会

c++ - 用于 C++ 分析的 Very sleepy 和 Callgrind 之间的区别

c++ - 动态添加 boost::filtering_stream 过滤器

javascript - 在javascript中覆盖数组长度

javascript - 获取 JSON 文件中的前 10 个值