通过对象数组的引用传递
Pass by reference for array of objects
>我在一个名为 Employee 的类中工作,我正在尝试创建一个将数组作为参数的构造函数
class Employee
{
Employee * array[9];
public:
Employee(Employee * arr[]);
}
但这行不通,所以我正在考虑通过引用传递arr
,除了我不能只是添加和在arr
之前......有什么想法吗?谢谢
如果您只想传递 Employee 类型的数组,那么您会这样做
Employee (Employee arr[])
或 Employee (Employee * arr)
如果你想把它一个指针数组传递给员工对象,那么你这样做
Employee (Employee * arr[])
或 Employee (Employee ** arr)
这些都将起作用。
此外,数组始终通过引用传递。
如果要传入数组,则还需要传入大小:
class Employee
{
public:
Employee(Employee* pE, std::size_t size) { ... }
};
因为您将数组降级为指针,否则将不知道大小。 当您传递指针时,不需要通过引用传递它,因为您可以更改元素的值,它将指向相同的内存位置(也就是说,它与通过引用传递没有什么不同)。
不过,使用 std::array
或 std::vector
会是一个更好的解决方案:
class Employee
{
public:
Employee(const std::vector<Employee>& vec) { ... }
};
旁注:我不确定为什么你有一个 Employee 对象,它需要一个 Employees 数组来构造它。 这似乎是设计问题的迹象。
相关文章:
- 关于引用数组位置的问题
- 使用指针交换而不引用数组C++
- 对于Boost.Propertytree,有没有办法使用JSON点表示法来引用数组元素?
- 如何在递归函数中调用引用数组?
- 动态指针引用数组由三元运算符返回值,但有异常
- 为什么没有 std::string 构造函数来引用数组
- 指针/引用数组
- 错误 C2234:引用数组是非法的
- 引用数组的方法
- 通过引用数组值进行交换
- 引用数组涉及的技术问题
- 引用数组的函数调用
- 从其他类中的类引用数组
- 如何使用变量名称引用数组位置
- 在 OpenGL 中呈现三角形结构引用数组
- 如何取消引用数组元素(C++)
- c++引用数组数组(指针到指针?)
- 指向指针的指针如何能够引用数组
- C++取消引用数组
- c++中引用数组中对象的共享指针