Nokioteca [Nokia] Forum: [mshell] Passare Puntatori - Nokioteca [Nokia] Forum

Salta al contenuto

Pagina 1 di 1
  • Non puoi iniziare una nuova discussione
  • Non puoi rispondere a questa discussione

[mshell] Passare Puntatori Credevo fosse possibile assegnare funzioni con i puntatori

#1 L   lento 

  • Senior Member
  • PuntoPuntoPuntoPuntoPuntoPunto
  • Gruppo: Utente
  • Messaggi: 637
  • Iscritto: 03 settembre 2008
  • Cellulare:E72

Inviato 27 novembre 2009 - 11:23

Scusate, ma forse sto' perdendo troppo velocemente i miei pochi neuroni....
Ero convinto che anche in mShell si potesse assegnare funzioni tramite i puntatori.
Esempio:
function stampa(frase)
	  print(frase);
end;

printone=stampa;

printone("hello");


Forse mi confondo con il linguaggio Lua....ma ero convinto che si poteva fare! magari nelle prime versioni di mShell????
qualcuno sa rispondermi?
0

#2 L   xMetallicax 

  • Senior Member
  • Gruppo: Developer
  • Messaggi: 953
  • Iscritto: 24 luglio 2006
  • Località:Saporito (CS)
  • Cellulare:6720
  • Firmware:031.022

Inviato 27 novembre 2009 - 14:26

Si può fare ;)
Basta che prima della funzione ci metti la E commerciale (&)

quindi:
printone=&stampa;
printone("hello");

0

#3 L   lento 

  • Senior Member
  • PuntoPuntoPuntoPuntoPuntoPunto
  • Gruppo: Utente
  • Messaggi: 637
  • Iscritto: 03 settembre 2008
  • Cellulare:E72

Inviato 27 novembre 2009 - 18:17

Visualizza MessaggixMetallicax, il 27/11/2009 - 14:26, ha scritto:


Grazie!
Mi ero un pò perso, ho visto che cè una bella paginetta sul manuale...certo che allora si può veramente fare un bel mucchietto di cose in mShell! :crying_anim02:
0

#4 L   Nick_7 

  • Senior Member
  • PuntoPuntoPuntoPuntoPunto
  • Gruppo: Utente
  • Messaggi: 339
  • Iscritto: 20 novembre 2008
  • Località:Luna
  • Cellulare:Omnia HD
  • Firmware:I8910XXJB1

Inviato 29 novembre 2009 - 11:02

Ciao lento, mi attendo qualche piccolo esempio anche riguardo a questa funzione "cursore" come al solito...
0

#5 L   lento 

  • Senior Member
  • PuntoPuntoPuntoPuntoPuntoPunto
  • Gruppo: Utente
  • Messaggi: 637
  • Iscritto: 03 settembre 2008
  • Cellulare:E72

Inviato 29 novembre 2009 - 11:31

Visualizza MessaggiNick_7, il 29/11/2009 - 11:02, ha scritto:

Ciao lento, mi attendo qualche piccolo esempio anche riguardo a questa funzione "cursore" come al solito...

Ciao 'Nick_7' .
Se ti riferisci al passaggio di funzioni tramite puntatori, puoi star tranquillo a breve ne vedrai delle belle!. (Spero)
Cursore? (ricorda che ho pochi neuroni) a cosa ti riferisci con cursore?
0

#6 L   Nick_7 

  • Senior Member
  • PuntoPuntoPuntoPuntoPunto
  • Gruppo: Utente
  • Messaggi: 339
  • Iscritto: 20 novembre 2008
  • Località:Luna
  • Cellulare:Omnia HD
  • Firmware:I8910XXJB1

Inviato 29 novembre 2009 - 13:50

mi sa che ho confuso puntatore con cursore... Io per cursore intendevo la freccia stile mouse, per puntatore invece che cosa si intende?
0

#7 L   lento 

  • Senior Member
  • PuntoPuntoPuntoPuntoPuntoPunto
  • Gruppo: Utente
  • Messaggi: 637
  • Iscritto: 03 settembre 2008
  • Cellulare:E72

Inviato 29 novembre 2009 - 13:57

Visualizza MessaggiNick_7, il 29/11/2009 - 13:50, ha scritto:

mi sa che ho confuso puntatore con cursore... Io per cursore intendevo la freccia stile mouse, per puntatore invece che cosa si intende?

'Nick_7' prova a chiederlo nel forum aprendo un nuovo topic.
Son convinto che troverai persone disposte a spiegartelo.
Anche perché è un concetto presente sia nella programmazione c++ che in Python e j2me. Di sicuro in questo forum ci sono persone più competenti di me per spiegartelo.
0

#8 L   masmil1988 

  • Millennium Member
  • Gruppo: Developer
  • Messaggi: 1576
  • Iscritto: 03 dicembre 2005
  • Località:Alcamo (TP)
  • Cellulare:Nokia 5800
  • Firmware:51.0.006

Inviato 30 novembre 2009 - 16:09

Uhm, manca effettivamente qualcosa a riguardo nella guida e forse sarebbe il caso di trattare anche questo...

Un puntatore è nient'altro che una variabile che contiene un indirizzo in memoria, di una variabile o una funzione, si tratta comunque di un indirizzo.
In mShell è possibile far contenere a una variabile l'indirizzo di una funzione (ma non di una variabile, non chiedetemi perchè).

Un esempio veloce:
function somma(primo,secondo)
	return a+b;
end;

function differenza(primo,secondo)
	return a-b;
end;

"scegli cosa vuoi fare" // sarebbe da implementare il codice per la scelta ma mi secca
"inserisci a e b" // sarebbe da scrivere anche questo

if scelta=1 then pFunc=&somma end;
if scelta=2 then pFunc=&differenza end;

print pFunc(a,b);


Questo è un utilizzo molto stupido dei puntatori a funzione, però in generale può avere utilità anche fondamentali.
Un esempio, mettiamo caso qualcuno crei una classe per creare figure geometriche, e voglia lasciare la libertà al programmatore di decidere come implementare la funzione per stampare gli oggetti. In questo caso il programmatore si ritrova già tutta la classe bell'e fatta e deve soltanto preoccuparsi di realizzare una funzione, che poi passerà come parametro al costruttore della classe, la quale saprà quale funzione chiamare per stampare gli oggetti...

Mi viene questo esempio, ma ce ne potrebbero essere anche molti altri, se lento o qualcun altro ha qualcos'altro in mente o un esempio migliore che lo scriva pure, magari riusciamo a essere più chiari e poi metto tutto nella guida ;)


ps. Dovremmo anche parlare di classi astratte... ;) quante cose e quanto poco tempo a disposizione!!!

Messaggio modificato da masmil1988 il 30 novembre 2009 - 16:15

0

#9 L   lento 

  • Senior Member
  • PuntoPuntoPuntoPuntoPuntoPunto
  • Gruppo: Utente
  • Messaggi: 637
  • Iscritto: 03 settembre 2008
  • Cellulare:E72

Inviato 02 dicembre 2009 - 08:48

Visualizza Messaggimasmil1988, il 30/11/2009 - 16:09, ha scritto:

Uhm, manca effettivamente qualcosa a riguardo nella guida e forse sarebbe il caso di trattare anche questo...

'masmil1988' se vuoi fare un opera di bene.....Dovresti spiegarci come si gestisce la tastiera e gli schermi tattili con i nuovi nokia
N97 e 5800.
Vedo che sul sito ufficiale nessuno risponde alla domanda di 'Nik_7' e personalmente trovandomi meglio con E71 non me la sento
di passare giornate intere a sperimentare, per capire come funziona il tutto.

Se hai già affrontato il problema potresti aiutare parecchi adoratori di mShell ( di sicuro due!.)

Grazie in tutti i casi.
0

Condividi questa discussione:


Pagina 1 di 1
  • Non puoi iniziare una nuova discussione
  • Non puoi rispondere a questa discussione