Use of QOpenGLVertexArrayObject

I'm programming with Qt and try to display different vehicles : car, plane, ship...
I have a parent class 'Vehicle' and child classes : 'car', 'plane', 'ship'...
Each member of class 'vehicle' has attributes for vertex, indexes, color, which enable me to define QOpenGLBuffer.
'Vehicle' class also has an attribute QOpenGLVertexArrayObject.

Unfortunately, despite my researches in OpenGL, C++ or Qt lessons, I don't know how to display 'Vehicle' instances from the Widget...

I thought I could load in a vector 'm_vehicle' all the instances of the child classes of 'Vehicle', then thanks to a method 'displayVehicle(Vehicle m)' called for each element of the list, load each of the VAO in the shader :

Thanks for your welcome, and for your answer, but in this sample there is only one object to display, and the VAO and VBO are defined in the widget class. What if I have multiple objects from various classes ?