Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it L'avatar di nerd
    Registrato dal
    Jun 2005
    Messaggi
    15

    [C++] Overloading dell operatore *

    Salve ragazzi, ho guardato un po in giro ma nn riesco a trovare una soluzione al mio problema.

    Ho una classe A:
    codice:
    class A{
      int x;
      int y;
    }
    e una classe B:
    codice:
    class B{
      A* aref;
      int z;
    public
      A* operator*(){
         return aref;
      }
    }
    Ciò che voglio ottenere è l'overloading dell'operatore di referenziazione che quando chiamato su B mi restituisca la classe A.

    Cioè poter fare:
    codice:
    B *b= new B();
    *b->a++;
    Non sono un esperto di C++ quindi può essere che abbia capito male qualcosa o che mi sia spiegato male.

    Grazie
    Oh quanto è bello essere stupidi!

  2. #2
    Posto che, nel tuo codice:
    • manca un ";" dopo la chiusura della graffa della classe A;
    • manca un ":" dopo la parola public;
    • manca un ";" dopo la chiusura della graffa della classe B;
    • i membri della classe A sono inaccessibili perché privati alla classe A;


    forse volevi scrivere un qualcosa del tipo:
    Codice PHP:
    #include <cassert>

    class A{
        public:
        
    int x;
        
    int y;
    };

    class 
    B{
        public:
        
    aref;
        
    int z;
        public:
        
    Aoperator*(void){
            return 
    aref;
        }
    };

    int main (void){
        
    A a;
        
    a.123;
        
    B b;
        
    b.aref = &a;
        
    assert ((*b) == &a);
        
    assert ((*b)->== a.x);
        return 
    0;


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.