Moto ad un metodo in C++(4)
const & Moto : perche'? | 1 | 0 | Per evitare che l'oggetto sia copiato prima di essere passato |
| 2 | 0 | La chiamata al metodo e' piu' veloce |
| 3 | 1 | E' possibile modificare le proprieta' dell'oggetto passato
1 1 193.204.188.67 |
| 4 | 11 | E' possibile modificare il puntatore all'oggetto
1 1 193.204.188.64 2 1 193.204.188.62 3 2 193.204.188.66 4 1 193.204.188.61 5 1 193.204.188.71 6 1 193.204.188.63 7 1 193.204.188.69 8 3 151.38.85.161 |
| 5 | 1 | E' lo stesso tipo di passaggio che si ha in Java
1 1 193.204.188.59 |
| 1 | 10 | E' possibile solo per un metodo astratto
1 2 193.204.188.69 2 2 193.204.188.67 3 1 193.204.188.62 4 1 193.204.188.61 5 2 193.204.188.71 6 1 193.204.188.66 7 1 193.204.188.59 |
| 2 | 2 | Solo un metodo dichiarato come virtual nella classe base , puo' essere polimorfico
1 1 193.204.188.63 2 1 193.204.188.64 |
| 3 | 0 | Richiede il link dinamico |
| 4 | 0 | La chiamata del metodo polimorfico avviene attraverso una tabella di funzioni virtuali durante l'esecuzione |
| 5 | 0 | La chiamata al metodo polimorfico deve avvenire tramite puntatore |
| 1 | 0 | Superclasse::nome_metodo() richiama un metodo della superclasse
|
| 2 | 0 | Superclasse() richiama il costruttore della superclasse
|
| 3 | 0 | Una classe C++ puo' ereditare 0,1 o piu' superclassi |
| 4 | 0 | La possibilita' di ereditarieta' multipla rende inutile in C++ la necessita' di creare quelle speciali classi astratte dette Interface in Java
|
| 5 | 11 | Il codice super() permette di richiamare il costruttore della prima superclasse nella lista delle classi ereditate
1 1 193.204.188.59 2 2 193.204.188.67 3 1 193.204.188.62 4 1 193.204.188.61 5 1 193.204.188.66 6 2 193.204.188.69 7 1 193.204.188.63 8 1 193.204.188.64 9 1 193.204.188.71 |
| 1 | 0 | L'accesso ai metodi dell'oggetto avviene con l'operatore . e non con la freccia -> |
| 2 | 8 | E' possibile creare un puntatore all'oggetto usando la funzione &
1 1 193.204.188.62 2 1 193.204.188.61 3 1 193.204.188.59 4 1 193.204.188.69 5 1 193.204.188.66 6 1 193.204.188.71 7 1 193.204.188.64 8 1 193.204.188.63 |
| 3 | 0 | E' buona norma definire il distruttore, il costruttore di copia e il sovraccarico dell'operatore = |
| 4 | 2 | E' necessario liberare la memoria occupata dall'oggetto , quando questo non serve piu'
1 2 193.204.188.67 |
| 1 | 1 | La stampa di un puntatore correttamente inizializzato a un valore diverso dal puntatore null produce un indirizzo in memoria
1 1 193.204.188.62 |
| 2 | 0 | La dichiarazione int ***p indica un puntatore a un puntatore a un puntatore a un intero
|
| 3 | 4 | a=*p++ se p punta a un elemento di un'array, ritorna il valore del prossimo elemento della stessa array
1 4 193.204.188.67 |
| 4 | 5 | Se p e' un vector< Moto *>::iterator allora (*p)->nome_metodo() permette di richiamare un metodo dell'oggetto Moto puntato dall'iteratore
1 1 193.204.188.64 2 1 193.204.188.71 3 1 193.204.188.63 4 1 193.204.188.69 5 1 193.204.188.59 |
| 5 | 7 | La scritta int * p = new int crea un intero nell'heap puntato da p
1 6 193.204.188.61 2 1 193.204.188.66 |
| 1 | 0 | La Standard Template Library e' una libreria di algoritmi e strutture di dati di uso generale |
| 2 | 9 | La STL e' una delle librerie che C++ ha ereditato dal C
1 1 193.204.188.67 2 1 193.204.188.64 3 1 193.204.188.61 4 1 193.204.188.63 5 1 193.204.188.71 6 1 193.204.188.62 7 1 193.204.188.66 8 1 193.204.188.69 9 1 193.204.188.59 |
| 3 | 0 | La STL contiene parecchi tipi di contenitori generici come vector, map e relativi iteratori
|
| 4 | 0 | Si consiglia l'uso di contenitori STL invece dell'array perche' piu' adatti alle necessita' della moderna programmazione ad oggetti |
| 5 | 0 | L'uso di un particolare contenitore STL richiede l'include dell'header file corrispondente: ad esempio include <vector>
|
| 1 | 4 | L'uso di una classe generica lista di interi viene fatto scrivendo : template<class int> lista a;
1 1 193.204.188.71 2 1 193.204.188.67 3 1 193.204.188.69 4 1 193.204.188.66 |
| 2 | 0 | A differenza di Java dove l'esistenza di un oggetto genitore di tutti gli altri permette di scrivere classi e algoritmi generici usando Object, in C++ si usa il meccanismo dei template
|
| 3 | 0 | Possiamo trasformare un contenitore di interi in un contenitore generico sostituendo a int il parametro T in alcune zone di codice
|
| 4 | 2 | La programmazione generica consiste nello scrivere il codice per un tipo generico T che viene sostituito col tipo prescelto all'atto della compilazione
1 1 193.204.188.59 2 1 193.204.188.61 |
| 5 | 3 | La programmazione generica permette di definire nuovi tipi di contenitori in aggiunta a quelli gia' esistenti nella STL
1 1 193.204.188.62 2 1 193.204.188.64 3 1 193.204.188.63 |
| 1 | 2 | Il C++ e' soggetto molto piu' di Java a problemi di intasamento di memoria (memory leak) perche' non esiste la garbage collection
1 1 193.204.188.63 2 1 193.204.188.64 |
| 2 | 4 | Il codice C++ e' di solito piu' veloce di quello Java perche' e' compilato e non interpretato
1 1 193.204.188.66 2 1 193.204.188.67 3 1 193.204.188.62 4 1 193.204.188.69 |
| 3 | 0 | Il C++ , a differenza di Java, permette di allocare un oggetto non solo nell'heap ma anche nello stack |
| 4 | 0 | Il C++ permette il sovraccarico degli operatori algebrici e logici, impossibile in Java |
| 5 | 4 | I programmi in C++ non sono di solito usati come applet all'interno del browser perche' avendo accesso normale alla CPU (non attraverso un interprete) possono danneggiare il computer su cui eseguono
1 1 193.204.188.59 2 1 193.204.188.61 3 1 193.204.188.71 4 1 193.204.188.66 |