Ho un problema con questo errore che non riesco a capire come risolvere. Credo sia un problema di linkaggio tra i file .h e .cpp
vi allego i file .h .cpp (dove vi è l'implentazione delle funzioni) e il file test.cpp (dove svolgo le funzioni per un test)
esame.h
#ifndef ESAME_H
#define ESAME_H
#include <string>
using namespace std;
class esame{
private:
string nomeEsame;
bool sostenuto;
int voto;
public:
esame();
esame(string);
esame(string, int);
string getEsame();
void setEsame(string);
int getVoto();
void setVoto(int);
bool isSostenuto();
};
#endif
esame.cpp
#include "esame.h"
#include <string>
esame::esame(){
sostenuto=false;
}
esame::esame(string n){
nomeEsame=n;
sostenuto=false;
}
esame::esame(string n, int v){
nomeEsame=n;
voto=v;
sostenuto=true;
}
string esame::getEsame(){
return nomeEsame;
}
void esame::setEsame(string n){
nomeEsame=n;
}
void esame::setVoto(int v){
voto=v;
}
int esame::getVoto(){
if(sostenuto)
return voto;
return -1;
}
bool esame::isSostenuto(){
return sostenuto;
}
test.cpp
#include "esame.h"
#include <iostream>
using namespace std;
int main(){
esame a, b("provab"), c("provac", 18);
a.setEsame("ziomichele");
b.setVoto(20);
cout<<c.getVoto();
return 0;
}
all'esecuzione di quest'ultimo ho i seguenti errori:
C:\Users\Antonio\AppData\Local\Temp\cc1sW7Wc.o:testesame.cc:(.text+0x20): undefined reference to `esame::esame()'
C:\Users\Antonio\AppData\Local\Temp\cc1sW7Wc.o:testesame.cc:(.text+0x58): undefined reference to `esame::esame(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)'
C:\Users\Antonio\AppData\Local\Temp\cc1sW7Wc.o:testesame.cc:(.text+0xaf): undefined reference to `esame::esame(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int)'
C:\Users\Antonio\AppData\Local\Temp\cc1sW7Wc.o:testesame.cc:(.text+0xfb): undefined reference to `esame::setEsame(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)'
C:\Users\Antonio\AppData\Local\Temp\cc1sW7Wc.o:testesame.cc:(.text+0x126): undefined reference to `esame::setVoto(int)'
C:\Users\Antonio\AppData\Local\Temp\cc1sW7Wc.o:testesame.cc:(.text+0x136): undefined reference to `esame::getVoto()'
collect2.exe: error: ld returned 1 exit status