Я хотел создать вектор подкласса QGraphicsRectItem с именем MyRect. Этот вектор инициализируется в MyClass:
MyClass::MyClass () : myVector_(80, std::vector<MyRect>(60, MyRect(true,true)))
...
Я узнал, что vector создает первый элемент, а затем копирует его с помощью конструктора копирования. Проблема в том, что конструктор копирования QGraphicsRectItem является закрытым, и это не работает. (Очень длинное сообщение об ошибке, один час поиска в Google)
Теперь у меня есть три возможных решения:
1.) Создайте цикл for и заполните myVector самостоятельно в теле конструктора.
1b.) Просто используйте обычный массив, потому что он все равно остается статическим.
2.) Используйте MyRect * вместо MyRect в качестве содержимого myVector (ручное распределение памяти -> плохое)
3.) Используйте QVector, который использует Object * по умолчанию и управляет памятью для меня.
Потратив хотя бы один час на решение этой проблемы, я хотел бы услышать от вас, есть ли другие хорошие возможности или что вы думаете, лучшее решение . Я на грани отбрасывания векторов для этого и просто использую массивы.