我有一个类,并且有一个数组设置为私有(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/