Oppure

Loading
22/12/06 11:58
robrock80
Salve a tutti. Come ho già scritto in qualche altro post è da poco che stò studiando il C++ e stò utilizzando Eclipse 3.2 CDT con MinGW. E' possibile che GCC non supporti l'overloading delle funzioni? --> Ho scritto un file e viene generato il seguente errore:

error: conflicting types for 'beep'
error: previous declaration of 'beep' was here


Ecco il file...




#include <windows.h>
#include <stdio.h>


typedef struct _CaratteristicheSuono {
int frequenza;
int durata;
} CaratteristicheSuono, *CaratteristicheSuonoPtr;


void beep(CaratteristicheSuonoPtr);
void beep(LPVOID);


void beep(CaratteristicheSuonoPtr carSuonoPtr) {
    int freq = carSuonoPtr->frequenza;
    printf ("Frequenza suono: %dHz\n", freq);
    Beep(carSuonoPtr->frequenza, carSuonoPtr->durata);
}


void beep(LPVOID carSuono) {
    CaratteristicheSuonoPtr carSuonoPtr = (CaratteristicheSuonoPtr)carSuono;
    beep(carSuonoPtr);
}




Ho provato anche con funzioni + semplici tipo

int square(int x) {return x * x;}
double square(double y){return y * y;}

Ma il risultato è lo stesso. Non sò se può esservi d'aiuto comunque il comando gcc è invocato da Eclipse in questa maniera

gcc -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"nomeFile.d"
Ultima modifica effettuata da robrock80 22/12/06 12:02
aaa
22/12/06 14:06
nikipe_silver
il C non supporta l'overloading, perche' e' una specifica della programmazione ad oggetti,C++ quindi...
aaa
24/12/06 4:41
pierotofy
Più che altro non so se l'overloading è supportato per funzioni che non sono all'interno di una classe. La funzione beep è già definita in stdio.h, ma non è all'interno di nessuna classe, quindi non puoi overloadarla.
Il mio blog: piero.dev
29/12/06 13:49
robrock80
Postato originariamente da pierotofy:

Più che altro non so se l'overloading è supportato per funzioni che non sono all'interno di una classe. La funzione beep è già definita in stdio.h, ma non è all'interno di nessuna classe, quindi non puoi overloadarla.



... Ma non è key sensitive il C?
aaa
30/12/06 3:06
pierotofy
Mi par di ricordare che il C sia case sensitive, ma in ogni caso la funzione beep è tutta scritta in minuscolo.
Il mio blog: piero.dev