Errore nel dichiarare un typedef struct

di il
5 risposte

Errore nel dichiarare un typedef struct

#include<iostream>
#include<math.h>
#include<stdlib.h>
using namespace std;
typedef struct Complesso{
double re;
double imm;
};
void leggicomplessi(Complesso&C){
cout<<"Inserisci il coefficiente reale:"<<endl;
cin>>C.re;
cout<<"Inserisci il coefficiente immaginario: "<<endl;
cin>>C.imm;
}
void stampacomplessi(Complesso&C){
cout<<" "<<C.re<<" "<<C.imm<<endl;
}
double modulo(Complesso&C){
return sqrt(C.re*C.re+C.imm*C.imm);
}
In questo codice sto creando una libreria
mi da errore nella definzione del typedef struct come posso ovviare?

5 Risposte

  • Re: Errore nel dichiarare un typedef struct

    Confondi il nome della struttura con quella del nuovo tipo. La struttura può essere anonima, ma il tipo lo devi indicare.
    
    typedef struct  {
    	double re;
    	double imm;
    } Complesso;
    
  • Re: Errore nel dichiarare un typedef struct

    Ho risolto il problema è che dichiaravo due volte lo struct perchè nel main includevo due librerie diverse dove in entrambe avevo dichiarato già lo struct ora mi sorge un nuovo problema
    cout<<"Ora componiamo il nostro vettore"<<endl;
    leggivettore(vett,dim);
    stampavettore(vett,dim);
    cout<<"Ora calcoliamo i moduli e li stampiamo sequenzialmente";
    for(int i=0;i<dim;i++){
    cout<<" "<<modulo(vett[i])<<endl;
    }
    cout<<"Ora ordiniamo i moduli in senso crescente se e' necessario"<<endl;
    bubblesort(vett,dim);
    )
    mi da errore qui cout<<" "<<modulo(vett)<<endl;
    mi dice errore [Error] no match for 'operator[]' (operand types are 'Vettore {aka Complesso}' and 'int')
    la funzione modulo l'ho definita così nella libreria
    double modulo(Complesso&C){
    return sqrt(C.re*C.re+C.imm*C.imm);
    }
  • Re: Errore nel dichiarare un typedef struct

    Non ho capito

    1) se hai letto quello che ti ho scritto

    2) quale codice stai provando adesso
  • Re: Errore nel dichiarare un typedef struct

    Sisi ho capito quello che mi hai detto ed ho risolto il codice che avevo mandato prima era un frammento di libreria che stavo formando per questo progetto ora mi da quest altro errore nel main del progetto
  • Re: Errore nel dichiarare un typedef struct

    A parte che dovresti creare un thread diverso per ogni problema, adesso manca il codice completo di cui stiamo parlando. Che non è quello di prima.
Devi accedere o registrarti per scrivere nel forum
5 risposte