Piccoli quesiti c++

Pablo5
ciao ragazzi ho alcune piccole domande da farvi sul c++:


1-se definisco la struttura

typedef struct
{
char titolo[50]
.......
.......
.......
}t_proiezione;

//fino qua tutto ok,e poi

struct elemento
{
t_proiezione inf;
struct elemento*pun;
};
//anche fino qua nessun problema
//e poi scrivo

struct elemento *aggiungi proiezione(struct elemento *p);

//che senso ha questa dicitura??????
//cioè tutto quello che precede le parentesi mi sembra la definizione di un puntatore a una struttura,e poi invece considerandolo solo dopo "*" mi sembra la dichiarazione di una funzione(ovviamente nel proseguire del programma c'è anche la definizione di tale funzione). Non riesco ad unire insieme le due cose....

2-ho letto quello che c'è da sapere riguardo il passaggio di parametri per indirizzo e reference
ma la dicitura:

void f (int*&x);//prototipo di funzione


cosa significa??????
fino adesso o vedevo scritto solo"*" o solo "&"..............


Mi sapreste gentilmente aiutare??????????????

Risposte
peppesmile
io conosco il linguaggio c

se mi dici cosa ti serve posso provare a risolvere il tuo problema ammeso che tu conosca anche il c

peppe89 :o

Pablo5
in questo caso cambia molto poco perchè le istruzioni sarebbero le stesse.

Kroldar
Per quanto ne so gli operatori * e & sono l'uno l'opposto dell'altro (un po' come il simbolo di integrale e quello di derivata), cmq l'espressione *&x che è equivalente a &*x restituisce l'indirizzo di memoria associato alla variabile x... probabilmente quel prototipo di funzione vuole che venga passato un indirizzo. Magari se incolli il codice (se non è troppo grande) possiamo cercare di capire meglio dove voglia arrivare chi ha scritto quel prototipo

gigilatrottola2
1. struct elemento *aggiungiproiezione(struct elemento *p);

E' il prototipo di una funzione, il cui nome è aggiungiproiezione (tutto attaccato), che riceve un puntatore ad un oggetto di tipo struct elemento e che restituisce un puntatore sempre di tipo struct elemento, magari lo stesso che riceve (o magari ne crea uno nuovo, fa una copia di quello passato e poi lo rstituisce).

2. In C fondamentalmente è l'indirizzo di memoria... quindi ci lavori con un puntatore.
In C++ sembra una reference ad un puntatore, ossia vuole che gli passi un puntatore sul quale lavori (nn su una copia quindi)

In entrambi i casi, cmq, manipoli l'oggetto che passi alla funzione, ed attraverso quell'oggetto manipoli l'oggetto puntato dal puntatore.

Pablo5
grazie a tutti per le risposte
cmq ora ho chiarito tutto
scusate l'assenza ma avevo problemi con il pc

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.