|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: May 2009
Messaggi: 366
|
[C] Funzioni Membro
salve ragazzi sono nuovo di c e volevo sapere per esempio in c++
class Sfera { public : float originX; float originY; float originZ; float size; int Sfera::impostaCoord() { float x = ((float)((rand() % 400) - 200) * 0.1f); float z = (float)((rand() % 400) - 200) * 0.1f; originX=x;originY=0;originZ=z; return 0; } void Sfera::disegnaSfera() { //glTranslatef(originX,originY,originZ); //glutSolidSphere(0.1,13,26); } }; come faccio a dichiarare le funzioni membro impostaCoord e disegnaSfera in una struct in c Grazie
__________________
visitate http://www.forumsenzacontro.altervista.org |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: May 2009
Messaggi: 366
|
sto svolgendo esercizi con le librerie openGL e devo programmare in C
__________________
visitate http://www.forumsenzacontro.altervista.org |
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Quote:
E poi nessuno (tranne qualche professore) ti impedisce di usare OpenGL con il C++. Secondo me non ha molto senso complicarsi la vista con puntatori a funzione dentro una struct. Avrai le funzioni: int impostaCoord(Sfera * sfera); void disegnaSfera(Sfera * sfera); |
|
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
|
Quote:
http://playbay.altervista.org/Volley asd ![]() ed inoltre il gruppo Khronos sta sviluppando una specifica per dei binding OpenGL per JavaScript, si chiama WebGL |
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
|
|
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Quote:
Io mi riferivo al porting inverso, da C++ a C, come richiesto. Ovviamente nel mio caso Sfera è una struct e non più una classe. |
|
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: May 2009
Messaggi: 366
|
quindi in c devo dichiarare queste funzioni ma dentro o fuori la struct?
Quote:
Grazie
__________________
visitate http://www.forumsenzacontro.altervista.org |
|
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
|
|
|
|
|
|
#9 | |
|
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Quote:
Le funzioni in C non sono un tipo di dato (anche se tecnicamente, credo, hanno un tipo, espresso dalla loro 'firma') percui non puoi "inserire" delle funzioni in una struct [altro link utile], al massimo puoi inserire puntatori a funzione. In linea di massima per rappresentare una classe C++ potresti definire una struct che contenga i campi che la classe definisce, e poi tradurre le funzioni della classe C++ con funzioni C che, come primo parametro, prendono un puntatore alla struct: questo sarebbe l'equivalente del puntatore "this" nella controparte C++. Esempio: se hai una classe C++ Pippo che definisce 3 campi e 4 funzioni, la puoi tradurre creando un header file Pippo.h che contiene la definizione della struct "Pippo" che definisce i 3 campi, e le dichiarazioni di ognuna delle 4 funzioni che come primo parametro prenderanno un puntatore alla tua struct Pippo. Poi crei Pippo.c che contiene la definizione delle 4 funzioni. All'interno di ogni funzione potrai operare sui campi della struct tramite il puntatore passato come primo parametro alla funzione stessa. @EDIT: è chiaro che la difficoltà sogettiva che esperirai nel fare quello che devi fare dipende principalmente da due aspetti: la tua conoscenza dei due linguaggi coinvolti e la complessità interna delle classi C++ coinvolte, da tradurre. Se sul fronte C++ ti senti abbastanza tranquillo e invece ti preoccupa il fronte C, assicurati di conoscere/ripassare alcuni concetti che potrebbero servirti per completare il quadro: tipi primitivi in C, funzioni, puntatori, puntatori a funzione, struct.
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) Ultima modifica di banryu79 : 12-01-2010 alle 15:32. |
|
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: May 2009
Messaggi: 366
|
grazie
__________________
visitate http://www.forumsenzacontro.altervista.org |
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Aspetta a ringraziarmi, non so se hai notato quel "in linea di massima"
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 23:15.





















