Problema file header

di
Anonimizzato7158
il
2 risposte

Problema file header

Ciao a tutti! sono nuovo del forum e come prima cosa vorrei salutarvi
sto cercando di capire come funzionano questi file header e ho un dubbio:
se creo questo programma:

//FILE A.cpp
void u(int a , int b){
a=b;
}

//FILE A.h

void u(int a,int b);

// FILE main.cpp

#include <cstdlib>
#include <iostream>
#include "A.h"
using namespace std;
int a;
int b=100;
int main(int argc, char *argv[])
{
    u(a,b);
    cout<<a<<endl;
    system("PAUSE");
    return EXIT_SUCCESS;
}
In base alle mie conoscenze, la funzione che ho creato u(a,b) dovrebbe eguagliare a a b, mentre in questo caso non funziona, e a rimane sempre a 0. Come mai? se togliessi nel main u(a,b) e mettessi semplicemente a=b; mi funziona correttamente, quindi la cosa che mi viene spontanea da dire è che non posso modificare i valori con funzioni presenti in altri file e richiamati attraverso i file header.... mi sapete dire se è corretto?
Grazie mille per il supporto.

2 Risposte

  • Re: Problema file header

    Dovresti referenziare i parametri della funzione u altrimenti a e b sono locali. In C++ esiste il tipo reference che si 'riferisce' alla locazione di memoria delle variabili basta anteporre la ampersand (e commerciale) alla variabile.In C non esiste e per fare questo bisogna usare i puntatori.
    Esempi:
    
    /* C++: */
    void u(int &a , int b)
    {
      a=b;
    }
    int main (void)
    {
      u(a,b);
    }
    
    /* C: */
    void u(int *a , int b)
    {
      *a=b;
    }
    int main (void)
    {
      u(&a,b);
    }
    
    Saluti,
    Max
  • Re: Problema file header

    Max grazie infinite! hai risolto il mio problema!!!!!! sei grande!!!! GRAZIE!!!!
Devi accedere o registrarti per scrivere nel forum
2 risposte