Visualizzazione dei risultati da 1 a 10 su 12

Hybrid View

  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2014
    Messaggi
    48
    Ho eliminato tutti i collegamenti tra classi e anzichè rendere alcune classi derivate di altre, le ho rese friend, in modo da poter utilizzare gli attributi "private" delle classi base, all'interno dei metodi della classe contenente i metodi principali del progetto.
    Risolto cio, mi torna l'ultimo problema... Il metodo principale del progetto, che torna la soluzione finale del progetto, viene richiamato nel main e giustamente il compilatore mi da errore per 2 attributi che gli do come parametri.
    Esiste un metodo per usare attributi private o protected nel main?

  2. #2
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    Quote Originariamente inviata da Peppyno Visualizza il messaggio
    Esiste un metodo per usare attributi private o protected nel main?
    Si, si usano appositi metodi getter/setter per accedere ai membri che interessano, senza che sia necessario l'uso di friend.
    Ad esempio:
    codice:
    class Stazione
    {
        typedef map<int,int> ChainMap; // per semplicare
        private:
            int T; // Membro T, tempo di lavorazione della stazione
            int E; // Membro E, tempo di migrazione verso la stazione successiva
            ChainMap T_migrazione; // Membro t_migrazione, map composta dall'indice della catena da raggiungere e tempo di migrazione verso quella catena
    
        public:
            Stazione(int indiceL, int K, int L, int indiceK);  // Costruttore della classe Stazione
            ~Stazione();  // Distruttore della classe Stazione, non serve in questo caso
            int getWorkTime() { return T; }
            int migrationTime() { return E; }
            ChainMap& getChainMap() { return T_migrazione; }
    };
    
    
    int main () {
        Stazione stazione(1,2,3,4);
        cout << stazione.getWorkTime() << endl;
        cout << stazione.getMigrationTime() << endl;
    }
    This code and information is provided "as is" without warranty of any kind, either expressed
    or implied, including but not limited to the implied warranties of merchantability and/or
    fitness for a particular purpose.

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 © 2026 vBulletin Solutions, Inc. All rights reserved.