Je voulais créer un vecteur d'une sous-classe de QGraphicsRectItem, nommé MyRect. Ce vecteur est initialisé dans MyClass:QT éléments dans l'initialisation de vecteur. Comment résoudre un problème de constructeur de copie privée?
MyClass::MyClass() : myVector_(80, std::vector<MyRect>(60, MyRect(true,true)))
...
J'ai appris que vecteur construit le premier élément, puis recopié avec le constructeur de copie. Le problème est que le constructeur de copie de QGraphicsRectItem est privé et cela ne fonctionne pas. (Très long message d'erreur, une heure de googler)
Maintenant, j'ai trois solutions possibles que je le vois:
1.) Faire une boucle for et remplir moi-même dans myVector le corps du constructeur.
1b.) Utilisez simplement un tableau normal car il reste statique de toute façon.
2.) Utiliser MyRect * au lieu de MyRect en tant que contenu de myVector (allocation de mémoire manuelle -> mauvais)
3.) Utiliser QVector qui utilise * objet par défaut et gère la mémoire pour moi.
Après avoir passé au moins une heure sur la résolution de ce que je voudrais vous entendre s'il y a d'autres bonnes possibilités ou ce que vous pensez est la meilleure solution . Je suis sur le point de laisser tomber des vecteurs pour cela et juste en utilisant des tableaux.