Ma non capisco l'errore logico, o meglio sono offuscato dal fatto che funziona lo stesso xD.
comunque dopo provvedo a modificare come mi hai consigliato, per il momento ti posto la versione con i file main.cpp header e file.cpp, ho un problema sia con il passaggio dei valori, sia nella dichiarazione della variabile di tipo struct;
Main
#include <iostream>
#include "squadra.h"
using namespace std;
int main (int argc, char * const argv[]) {
string squadra;
schema ruolo; //<------ aggregate 'schema ruolo' has incomplete type and cannot be defined
int d,c,a;
cout << "\n ***** Salve, benvenuto nel programma per la gestione della tua squadra, inserisci il nome della squadra : ***** \n";
cin>>squadra;
inserisciNomi(&ruolo, &d, &c, &a );
cout << "\n ***** Stampa della squadra *****";
cout << "\n \n \n----- "<<squadra <<" -----";
stampaNomi(ruolo,d,c,a);
}
Squadra.cpp
#include "squadra.h"
#include <iostream>
using namespace std;
struct schema
{
string portiere;
string difensore[4];
string centrocampista[4];
string attaccante[3];
};
void inserisciNomi(schema &ruolo ,int &d,int &c,int&a )
{
cout <<"Inserire il nome del portiere \n ";
cin>>ruolo.portiere;
cout <<"\n quanti difensori voui schierare in campo ? \n";
cin>>d;
cout<<"\n Inserire nomi difensori \n";
for(int i=0;i<d;i++)
{
cin>>ruolo.difensore[i];
}
cout <<"\n quanti centrocampisti voui schierare in campo ? \n";
cin>>c;
cout<<"\n inserire nomi centrocampisti \n";
for(int i=0;i<c;i++)
{
cin>>ruolo.centrocampista[i];
}
cout <<"\n quanti attaccanti voui schierare in campo ? \n";
cin>>a;
cout<<"\n inserire nomi attaccanti ";
for(int i=0;i<a;i++)
{
cin>>ruolo.attaccante[i];
}
}
void stampaNomi(schema ruolo,int d,int c,int a)
{
cout<<"\n-- Portiere --";
cout<<"\n "<< ruolo.portiere;
cout<<"\n-- Difesa --";
for(int i=0;i<d;i++)
{
cout<<"\n "<<ruolo.difensore[i];
}
cout<<"\n-- Centro campo --";
for(int i=0;i<c;i++)
{
cout<<"\n "<<ruolo.centrocampista[i];
}
cout <<"\n-- Attacco --";
for(int i=0;i<a;i++)
{
cout<<"\n "<<ruolo.attaccante[i];
}
cout<<endl;
}
Squadra.h
#ifndef _squadra
#define _squadra
typedef struct schema;
void inserisciNomi(schema &,int &d,int &c,int &a );
void stampaNomi(schema,int d,int c,int a);
#endif