C++ 对象数组的按引用传递

C++ 对象数组的按引用传递,c++,C++,我在一个名为Employee的类中工作,我试图创建一个以数组作为参数的构造函数 class Employee { Employee * array[9]; public: Employee(Employee * arr[]); } 但是这行不通,所以我想通过引用传递arr,除了我不能在arr之前添加&。。。有什么想法吗? 谢谢如果您希望传入数组,还需要传入大小: class Employee { public: Employee(Employee* pE, std::size_t

我在一个名为Employee的类中工作,我试图创建一个以数组作为参数的构造函数

class Employee 
{ 
Employee * array[9];
public:
Employee(Employee * arr[]);
}
但是这行不通,所以我想通过引用传递
arr
,除了我不能在
arr
之前添加&。。。有什么想法吗?
谢谢

如果您希望传入数组,还需要传入大小:

class Employee
{
public:
    Employee(Employee* pE, std::size_t size) { ... }
};
因为您将把数组降级为指针,否则将不知道数组的大小。当您传递指针时,不需要通过引用传递它,因为您可以更改元素的值,并且它将指向相同的内存位置(也就是说,它与通过引用传递没有什么不同)

使用
std::array
std::vector
是更好的解决方案,不过:

class Employee
{
public:
    Employee(const std::vector<Employee>& vec) { ... }
};
class员工
{
公众:
雇员(const std::vector&vec){…}
};

旁注:我不知道为什么会有一个Employee对象,它需要一个Employee数组来构造它。这似乎是一个设计问题的迹象。

如果您只想传递Employee类型的数组,那么您可以传递

Employee(Employee arr[])
Employee(Employee*arr)

如果您想向它传递一个指向Employee对象的指针数组,那么您可以这样做

Employee(Employee*arr[])
员工(员工**arr)

这些都会奏效


此外,数组总是通过引用传递。

使用
std::vector
/结束线程“…以数组作为参数。”什么数组??您的成员是指针数组,而您的参数是一个简单指针(假设您修复了结束
]
的直接语法错误)。你的问题充其量也不清楚,为什么不起作用?默认情况下,数组是通过引用传递的。但是Employee对象真的有Employee对象数组作为成员吗?你确定你的设计是正确的吗?