Вы можете использовать std::array
struct Triangle {
std::array<QVector3D *, 3> points;
QVector3D * operator[](int n) {return points[i];}
};
Triangle tr;
auto test = tr[0]; //will return first component (former 'a')\
Поскольку точки в struct Triangle
являются общедоступными, перегрузка оператора не требуется.
auto test = tr.points[0]; //will return first component (former 'a')
Если вы не собираетесь добавлять дополнительные функции в struct Triangle
, рассмотрите возможность использования
using Triangle = std::array<QVector3D *, 3>;