PROBLEMA C++ : Errore "Multiple definition" in netbeans

LJGibbs

Nuovo Utente
17
0
Buongiorno a tutti,
sto usando netbeans 8(con compilatore cygwin) per creare dei programmi in C++ su Windows.

Il mio problema sta nel fatto che scrivendo un semplice programma mi da errore "multiple definition" dei metodi della classe, questo programma l'ho copiato riga per riga da un testo di programmazione C++ e a mio avviso non c'è nulla di sbagliato e non so più dove sbattere la testa.
Allego ora i file:

questo è il file "orario2.cpp" e contiene la classe orario2
Codice:
class orario2 {
public:
    orario2(int=0, int=0, int=0);
    int Ore();
    int Minuti();
    int Secondi();
private:
    int sec;
};

orario2::orario2(int o, int m, int s) {
    if(o<0 || o>23 || m<0 || m>59 || s<0 || s>59)
        sec=0;
    else
        sec=o*3600 + m*60+s;
}

int orario2::Ore(){
    return sec/3600;
}

int orario2::Minuti(){
    return (sec/60)%60;
}

int orario2::Secondi(){
    return sec%60;
}

Questo invece è il main (main.cpp) che utilizza la classe di cui sopra:
Codice:
#include "orario2.cpp"
#include <cstdlib>
#include <iostream>

using namespace std;

/*
 * 
 */
int main() {
    orario2 s;
    s=6;
    cout<<s.Ore()<<':'<<s.Minuti()<<':'<<s.Secondi()<<endl;
}

Mentre questo è tutto il papiro di errori che mi fa da cui si notano gli errori di "multiple definition" sulla definizione dei metodi ora, minuti, secondi e sul costruttore a 0,1,2,3 parametri:

Codice:
"/usr/bin/make" -f nbproject/Makefile-Debug.mk QMAKE= SUBPROJECTS= .build-conf
make[1]: Entering directory '/cygdrive/c/Documents and Settings/Jacopo/Desktop/prova cpp/CppApplication_2'
"/usr/bin/make"  -f nbproject/Makefile-Debug.mk dist/Debug/Cygwin-Windows/cppapplication_2.exe
make[2]: Entering directory '/cygdrive/c/Documents and Settings/Jacopo/Desktop/prova cpp/CppApplication_2'
mkdir -p dist/Debug/Cygwin-Windows
g++     -o dist/Debug/Cygwin-Windows/cppapplication_2 build/Debug/Cygwin-Windows/main.o build/Debug/Cygwin-Windows/orario2.o 
build/Debug/Cygwin-Windows/orario2.o: In function `ZN7orario2C2Eiii':
/cygdrive/c/Documents and Settings/Jacopo/Desktop/prova cpp/CppApplication_2/orario2.cpp:20: multiple definition of `orario2::orario2(int, int, int)'
build/Debug/Cygwin-Windows/main.o:/cygdrive/c/Documents and Settings/Jacopo/Desktop/prova cpp/CppApplication_2/orario2.cpp:20: first defined here
build/Debug/Cygwin-Windows/orario2.o: In function `ZN7orario2C2Eiii':
/cygdrive/c/Documents and Settings/Jacopo/Desktop/prova cpp/CppApplication_2/orario2.cpp:20: multiple definition of `orario2::orario2(int, int, int)'
build/Debug/Cygwin-Windows/main.o:/cygdrive/c/Documents and Settings/Jacopo/Desktop/prova cpp/CppApplication_2/orario2.cpp:20: first defined here
build/Debug/Cygwin-Windows/orario2.o: In function `ZN7orario23OreEv':
/cygdrive/c/Documents and Settings/Jacopo/Desktop/prova cpp/CppApplication_2/orario2.cpp:27: multiple definition of `orario2::Ore()'
build/Debug/Cygwin-Windows/main.o:/cygdrive/c/Documents and Settings/Jacopo/Desktop/prova cpp/CppApplication_2/orario2.cpp:27: first defined here
build/Debug/Cygwin-Windows/orario2.o: In function `ZN7orario26MinutiEv':
/cygdrive/c/Documents and Settings/Jacopo/Desktop/prova cpp/CppApplication_2/orario2.cpp:31: multiple definition of `orario2::Minuti()'
build/Debug/Cygwin-Windows/main.o:/cygdrive/c/Documents and Settings/Jacopo/Desktop/prova cpp/CppApplication_2/orario2.cpp:31: first defined here
build/Debug/Cygwin-Windows/orario2.o: In function `ZN7orario27SecondiEv':
/cygdrive/c/Documents and Settings/Jacopo/Desktop/prova cpp/CppApplication_2/orario2.cpp:35: multiple definition of `orario2::Secondi()'
build/Debug/Cygwin-Windows/main.o:/cygdrive/c/Documents and Settings/Jacopo/Desktop/prova cpp/CppApplication_2/orario2.cpp:35: first defined here
collect2: error: ld returned 1 exit status
nbproject/Makefile-Debug.mk:63: recipe for target 'dist/Debug/Cygwin-Windows/cppapplication_2.exe' failed
make[2]: *** [dist/Debug/Cygwin-Windows/cppapplication_2.exe] Error 1
make[2]: Leaving directory '/cygdrive/c/Documents and Settings/Jacopo/Desktop/prova cpp/CppApplication_2'
nbproject/Makefile-Debug.mk:60: recipe for target '.build-conf' failed
make[1]: *** [.build-conf] Error 2
make[1]: Leaving directory '/cygdrive/c/Documents and Settings/Jacopo/Desktop/prova cpp/CppApplication_2'
nbproject/Makefile-impl.mk:39: recipe for target '.build-impl' failed
make: *** [.build-impl] Error 2

BUILD FAILED (exit value 2, total time: 969ms)

..... dunque.... qualcuno sa spiegarmi dove è che sbaglio??:grat:
Grazie in anticipo e buona continuazione di giornata :)
 

Trepiedi

Nuovo Utente
39
1
visto che le tre funzioni di interfaccia non fanno modifiche, sarebbe buona norma dichiararle 'const':

int Ore() const;
int Minuti() const;
int Secondi() const;

metti lo specificatore anche nell'implementazione e vedi se va, senò errori non ce ne sono, a parte un
valore di ritorno che dovrebbe esserci nel main
 
Ultima modifica:

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!