Buonasera a tutti. Sono nuovo del forum e avrei bisogno di un aiuto, sto implementando questo semplice programma per esercitarmi con l'uso delle classi in c++. Come noterete dal codice ho creato 3 file: un main, un header e una "classe" cliente; Ho incluso "Cliente.h" nel main e scritto concretamente il costruttore e i suoi metodi in Cliente.cpp .
Il mio problema è che quando vado a compilare l'intero progetto dev-c++ mi tira fuori in fase di compilazione i seguenti errori:
[Linker error] undefined reference to `Cliente::Cliente(char*, char*, char*, int)'
[Linker error] undefined reference to `Cliente::stampa()'
ld returned 1 exit status
Dove sbaglio ? Perchè se invece di scrivere concretamente il costruttore e il metodo in cliente.cpp li scrivo prima del main, il programma va ? Vi ringrazio in anticipo.
File: main.cpp
#include <cstdlib>
#include <stdio.h>
#include <iostream>
#include "Cliente.h"
int main()
{
char a[20];
char b[20];
char c[20];
int d;
printf("Inserisci il nome");
scanf("%s",a);
printf("Inserisci il cognome");
scanf("%s",b);
printf("Inserisci il indirizzo");
scanf("%s",c);
printf("Inserisci eta");
scanf("%d",&d);
Cliente x(a,b,c,d);
x.stampa();
system("PAUSE");
return EXIT_SUCCESS;
}
File: Cliente.cpp
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "Cliente.h"
Cliente::Cliente(char a[],char b[],char c[],int d){
strcpy(name,a);
strcpy(cognome,b);
strcpy(indirizzo,c);
eta = d;
}
void Cliente::stampa()
{
printf("%s %s %s %d",name ,cognome ,indirizzo, eta);
}
File: Cliente.h
class Cliente
{
public:
Cliente(char a[],char b[],char c[],int d);
void stampa();
private:
char name[20];
char cognome[20];
char indirizzo[20];
int eta;
};