Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Quiz
Per ciascuna risposta, selezionare vero o falso.
2) Che istruzione è necessario utilizzare per deallocare la memoria allocata con l'istruzione
seguente:
4) La direttiva #include:
• può essere effettuato solo se uno degli operandi è un UDT [V] [F]
• permette di trasformare un operatore binario in ternario [V] [F]
• deve essere implementato per ogni UDT introdotto nel codice [V] [F]
• richiede l'utilizzo della keyword "operator" all'utente che usa l'operatore [V] [F]
#include <iostream>
using namespace std;
int main()
{
int *p = new int[10];
for (int i = 0; i < 10; ++i)
p[i] = i;
int *q = &p[3];
cout << q[-2] << endl;
return 0;
}
std::vector<MyClass> v2 = v;
• Sì [V] [F]
• No [V] [F]
• Sì, se è definito il costruttore di copia di MyClass [V] [F]
• No, tranne quando è definito il costruttore di default di MyClass [V] [F]
Domande a risposta aperta
1) Illustrare il concetto di libreria in C++. Spiegare la differenza tra librerie statiche e librerie
dinamiche, evidenziando per ciascuna tipologia quali sono i punti di forza e di debolezza.
2) Spiegare il concetto di template. Mostrare un esempio di function template specificato per due
tipi diversi, illustrando qual è il comportamento del compilatore in questa situazione.
3) Calcolare l'output del seguente programma senza usare strumenti elettronici (non è possibile
copiare il codice, compilarlo ed eseguirlo!), ma solo leggendo il codice. Motivare la risposta.
#include <iostream>
using namespace std;
a = 2;
q = &a;
*p = *q + *num;
num = p;
}
int main() {
int *p;
int q;
int *num;
int a;
a = 3;
q = 5;
p = &a;
num = &q;
HelpMe(&a, p, num);
WhereAmI(&q, p, *num);
cout << "*p = " << *p << " q = " << q << " *num = " << *num << endl;
return 0;
}