Hola, tengo un vector que se pobladas por los casos. Sin embargo, parece estar haciendo el borrado () la funcionalidad de los vectores inutilizable: S
Esto es lo que estoy hablando y #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();
- ...
-
Ahora...cuando intento compilar (no el código actual, el ejemplo anterior) con gcc me da un error:
error: no existe la función de contrapartida para llamar a std:: vector <CenemyBullet, std:: asignador <CenemyBullet>>:: erase (Sub-16 &)
Lo que creo que es estúpidamente tratando de hacer es encontrar el miembro de borrar en la clase que he definido...¿Qué hay con eso? ¿Es eso normal o he hecho algo estúpido (la definición del vector a nivel mundial entre las definiciones de la clase?).
Si eso es normal...no vectores que hacen inservible para los objetos?
Descargar mi fuente completo . El código en cuestión está dentro de main.cpp, y sí sé que hay un montón de otras cuestiones en el código de ^ _ ^ Es un WIP, malos eludir a limpiarlo. A menos, por supuesto, los problemas causados a ese problema.
¡Oh, estoy compilando para la GBA, utilizando SDK de avanzada. Así que muy probablemente no será capaz de compilar directamente hacia afuera, si es necesario hacerlo. Si lo desea puede descargar el
cosa completa (más de 21MB).