Overloading operatori

di il
3 risposte

Overloading operatori

Salve, è da un pò che sbatto la testa su questa cosa: nel momento in cui scrivo
int c=12435
come viene allocato il numero 12435 prima dell'operazione di assegnazione a c?
Il problema mi è sorto quando ho provato a fare l'overloading dell'operatore "=" in una classe, non sò come gestire gli argomenti della funzione... Mi spiego meglio:
scrivo

classe Pippo{
   int * n; 
   private:
   Pippo();
   Pippo operator=(**QUI NON SO COSA METTERE**);
}

Pippo Pippo::operator=(**QUI NON SO COSA METTERE**){
      //qui definisco cosa fa l'operatore prendendo il valore
}

e nel main qualcosa tipo:

Pippo value;
value=1.827463874632874637872;
vorrei splittare quel numero float in point in un array ma non sò come passarlo all'operatore... se lo prendo nella funzione "operator+" come un argomento float o double perdo molte cifre nel caso in cui il numero sia lungo, mentre a me servono tutte le cifre...

3 Risposte

  • Re: Overloading operatori

    Se deve essere un numero più preciso di un double, devi passarlo come stringa

    value="1.827463874632874637872";
  • Re: Overloading operatori

    Ci avevo pensato ma il codice perde di stile... e poi darei delle informazioni sulla struttura della mia classe, cosa che non voglio fare... non esiste un modo per convertire implicitamente in stringa?
  • Re: Overloading operatori

    A parte che non capisco le obiezioni, il valore che viene espresso è una costante numerica e viene gestita direttamente dal compilatore che la converte usando una rappresentazione conosciuta (double) per passarla alla variabile.
Devi accedere o registrarti per scrivere nel forum
3 risposte