按引用返回指针数组

Return array of pointers by reference

本文关键字:数组 指针 返回 引用      更新时间:2023-10-16

在我的一个类中,我有一个

Reservation * availability[30] = {nullptr};

(当然,我稍后会用一些值初始化(。

尽管如此,我有一个getReservations((函数,它应该返回对该30个元素数组的引用,以便它可以像这样使用:

getReservations()[i] ...

我应该如何声明该函数?

声明通过引用返回数组的函数的语法如下:

Reservation * (& getReservations())[30];

当然,正如你所看到的,你不应该在现实生活中使用它。而是使用类型别名执行此操作:

using Reservations = Reservation * [30];
Reservations & getReservations();

或者,因为数组无论如何都没有边界检查,所以只需返回一个指针,然后您可以像数组一样索引:

Reservation * getReservations();
Reservation *(&getReservations())[30];

应该为你做。

请记住悬空引用和指针管理。

我建议您使用现代C++:

using ReservationArray = std::array<Reservation*, 30>;
ReservationArray _availability;

并将其返回为:

ReservationArray& getReservations()