|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Bannato
Iscritto dal: Jun 2003
Città: Caprese Michelangelo, Arezzo
Messaggi: 146
|
[C++] Passare un vettore ad una funzione
Salve, stavo programmando in C quando un bel giorno mi decido a passare al C++ per via di cose simpatiche tipo appunto i vettori.
Ora nasce il problema: Uso VC++ 7.0 e con questo codice: Codice:
#include <vector>
...
vector<oggetto> lista_oggetti;
...
char carica_oggetto_3ds ( oggetto *lista_oggetti,
char *filename,
vettore_4d_ptr scale, // initial scaling factors
vettore_4d_ptr rot, // initial rotations
vettore_4d_ptr pos) // initial position
{
...
lista_oggetti.push_back (nuovo_oggetto);
...
}
Codice:
error C2228: l'elemento a sinistra di ".push_back" deve avere un tipo classe, struttura o unione
il tipo è "oggetto *"
si intendeva utilizzare "->"?
Sono acerbo di template e STL (non si era capito Vi ringrazio anticipatamente; /* CIAO!! */ |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
char carica_oggetto_3ds (vector<oggetto> &lista_oggetti
|
|
|
|
|
|
#3 | |
|
Bannato
Iscritto dal: Jun 2003
Città: Caprese Michelangelo, Arezzo
Messaggi: 146
|
Quote:
|
|
|
|
|
|
|
#4 |
|
Bannato
Iscritto dal: Jun 2003
Città: Caprese Michelangelo, Arezzo
Messaggi: 146
|
Sono ancora io ed ho questo problema:
Codice:
Nel mio cammino di conversione di un piccolo motore grafico da C a C++ mi sono incappato in questo problema, qualcuno lo sa risolvere?
/*** definizione di oggetto ***/
typedef struct oggetto {
bool attivo; //variabile di attivazione nell'array degli oggetti
bool da_disegnare; //variabile che indica se l'oggetto verrà disegnato
int id; //id numerico
char nome [64]; //nome dell'oggetto
vettore_4d direzione; //direzione dell'oggetto
vettore_4d world_pos; //posizione nel mondo
int num_vertici; //numero vertici
vettore_4d dir; // rotation angles of object in local
// cords or unit direction vector user defined???
vettore_4d ux,uy,uz; // local axes to track full orientation
// this is updated automatically during
// rotation calls
vettore_4d local_vert[MAX_VERTICI_PER_OGGETTO];
vettore_4d world_vert[MAX_VERTICI_PER_OGGETTO];
unsigned long int num_poligoni; //numero di facce dell'oggetto
poligono poly[MAX_POLY_PER_OGGETTO];
}oggetto, *oggetto_ptr;
/*** lista oggetti ***/
vector<oggetto> lista_oggetti;
oggetto nuovo_oggetto;
load3ds (&nuovo_oggetto, filename, scale, rot, pos);
lista_oggetti.push_back (nuovo_oggetto);
Porca miseria in esecuzione mi da errore! perché non va? Ciao!! |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Com'è questa funzione ?
load3ds (&nuovo_oggetto, filename, scale, rot, pos); |
|
|
|
|
|
#6 |
|
Bannato
Iscritto dal: Jun 2003
Città: Caprese Michelangelo, Arezzo
Messaggi: 146
|
Si, e l'errore me lo da
lista_oggetti.push_back (nuovo_oggetto); Non capisco, il manuale dice che si accede ai vettori come fossero array.. |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Volevo sapere la dichiarazione di load3ds....
|
|
|
|
|
|
#8 |
|
Bannato
Iscritto dal: Jun 2003
Città: Caprese Michelangelo, Arezzo
Messaggi: 146
|
Ops, non avevo capito
Codice:
char load3ds (oggetto_ptr ogg, char *filename,
vettore_4d_ptr scale, // initial scaling factors
vettore_4d_ptr rot, // initial rotations
vettore_4d_ptr pos) // initial position
{
|
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Boh....
Ma oggetto ti viene "rimepito" correttamente ocn i dati ? |
|
|
|
|
|
#10 |
|
Bannato
Iscritto dal: Jun 2003
Città: Caprese Michelangelo, Arezzo
Messaggi: 146
|
No, fa errore in esecuzione quando esegue quella riga di pushback.
Il bello è che sto facendo una conversione e prima c'era un semplice array statico al suo posto e funzionava benissimo. |
|
|
|
|
|
#11 |
|
Bannato
Iscritto dal: Jun 2003
Città: Caprese Michelangelo, Arezzo
Messaggi: 146
|
up
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 13:19.



















