Oppure

Loading
21/01/12 19:06
Jimmy_5
Il mio problema è che non capisco come usare gli struct insieme ad extern.

Posto il codice:

main.cc

#include <iostream>
#include <stdlib.h>
#include "operazioni.h"
#include "dati.h"
using namespace std;

int a, b, c;
struct insieme uno;

void calcola(){
set();
somma();
prodotto();
set();
}

void stampa(){
cout<<"a,b,c: "<<a<<" "<<b<<" "<<c<<" "<<endl;
cout<<"Numeri dell'insieme: "<<uno.numeri[0]<<" "<<uno.numeri[1]<<"\t"<<uno.numeri[2]<<endl;
cout<<"ciao\n";
}

int main()
{

atexit(stampa);

cout<<"Benvenuto!\n";
calcola();

return 0;

}


operazioni.cc

#include <iostream>
#include "dati.h"
using namespace std;

void somma(){
cout<<"Somma: "<<a+b+c<<endl;
}

void prodotto(){
cout<<"Prodotto: "<<a*b*c<<endl;
}

void set(){

char input;

cout<<"Vuoi settare le variabili? s/n\t";
cin>>input;

if(input=='s'){
cout<<"Inserisci a: ";
cin>>a;
cout<<"Inserisci b: ";
cin>>b;
cout<<"Inserisci c: ";
cin>>c;
cout<<"Inserisci i numeri dell'insieme 1:\t";
cin>>uno.numeri[0];cout<<"\t";
cin>>uno.numeri[1];cout<<"\t";
cin>>uno.numeri[2];cout<<endl;

}

}


operazioni.h

#include <iostream>
#include "dati.h"

void somma();
void prodotto();
void set();


dati.h

extern int a, b, c;

struct insieme{
       int numeri[2];
};

extern struct insieme uno;


aaa
21/01/12 20:58
nessuno
Deve essere

dati.h

struct insieme
{
	int numeri[2];
};
 
extern struct insieme uno;
extern int a, b, c;



operazioni.h

void somma();
void prodotto();
void set();


operazioni.cc


#include <iostream>

#include "dati.h"

using namespace std;


main.cc

#include <iostream>
#include <cstdlib>

#include "dati.h"
#include "operazioni.h"

using namespace std;
 
struct insieme uno;
int a, b, c;
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
21/01/12 23:52
Jimmy_5
mmh, non vedo la differenza tra il tuo e il mio codice: struct e int sono dichiarati nello stesso modo, negli stessi file

EDIT:: a ok,
#include "dati.h"
non va messo nell'header operazioni.h

grazie
Ultima modifica effettuata da Jimmy_5 21/01/12 23:55
aaa