通过引用返回指针数组

Jue*_*tat 3 c c++ arrays pointers

在我的一个课程中,我有一个

Reservation * availability[30] = {nullptr};
Run Code Online (Sandbox Code Playgroud)

(我当然会在稍后用一些值初始化).

不过,我有一个getReservations()函数,它应该返回对30个元素的数组的引用,以便它可以像:

getReservations()[i] ...
Run Code Online (Sandbox Code Playgroud)

我该如何申报该功能?

eml*_*lai 5

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

Reservation * (& getReservations())[30];
Run Code Online (Sandbox Code Playgroud)

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

using Reservations = Reservation * [30];

Reservations & getReservations();
Run Code Online (Sandbox Code Playgroud)

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

Reservation * getReservations();
Run Code Online (Sandbox Code Playgroud)