Salut, j'ai un vecteur qui se peuplées par les instances. Cependant, il semble faire l'effacer () la fonctionnalité des vecteurs inutilisable: S
Voici ce que je parle et #058;
class Ctest;
vector <Ctest> testObjects;
class Ctest{
int id;
int something1,something2;
float whatever;
public:
Ctest(int setId){
id = setId;
}
~Ctest();
someMethod();
anotherMethod(){
//... stuff
//... more stuff
testObjects.erase(id);
}
};
int main(){
testObjects.push_back(testObjects.size());
testObjects.push_back(testObjects.size());
testObjects.push_back(testObjects.size());
testObjects[1].anotherMethod();
...
-
- class Ctest;
- vector <Ctest> testObjects;
- class Ctest{
- int id;
- int something1,something2;
- float whatever;
- public:
- Ctest(int setId){
- id = setId;
- }
- ~Ctest();
- someMethod();
- anotherMethod(){
- //... stuff
- //... more stuff
-
- testObjects.erase(id);
- }
- };
-
- int main(){
- testObjects.push_back(testObjects.size());
- testObjects.push_back(testObjects.size());
- testObjects.push_back(testObjects.size());
- testObjects[1].anotherMethod();
- ...
-
Maintenant...lorsque je tente de compiler (mon code proprement dit, pas l'exemple ci-dessus) avec gcc, j'obtiens une erreur:
Erreur: pas de fonction d'appariement pour l'appel à std:: vector <CenemyBullet, std:: allocator <CenemyBullet>>:: erase (U16 &)
Ce que je pense qu'il essaie bêtement à faire est de trouver les effacer membres dans la classe que j'ai défini...what is up with that? Est-ce normal ou ai-je fait quelque chose de stupide (qui définit le vecteur au niveau mondial entre les définitions pour la classe?).
Si cela est normal...N'est-ce pas faire des vecteurs inutilisable pour des objets?
Télécharger mon source complet . Le code en question se trouve dans main.cpp, et oui je sais qu'il ya beaucoup d'autres questions dans le code ^ _ ^ son un WIP, mal tourner pour le nettoyer. À moins bien sûr ces questions causé ce problème.
Oh, je suis de la compilation pour la GBA, en utilisant DevKit avancé. Donc, vous avez très probablement ne seront pas capables de le compiler emblée si vous avez besoin de le faire. Si vous voulez vous pouvez télécharger le
plein chose (plus de 21Mo).