Ordine delle domande, nomi di classi, funzioni, variabili, dettaglio dei dati (valori numerici e stringhe) erano diversi per ciascuno studente.
ESERCIZIO 1
#include <iostream> class H { int i; public: H(int ii=1) : i(ii) {}; int valore() { return ++i; }; }; class X { H h; public: X(int ii=3) : h(ii) {}; int valore() { return h.valore(); }; }; int main() { X x1(2); X* x2 = new X; cout << x1.valore() + x2->valore() << endl ; }
ESERCIZIO 2
#include <iostream> #include <string.h> char * f(char *q) { char *w = new char [strlen(q)+5]; strcpy(w,q); return w; } int main() { char d[]="nome cognome"; char * z = f(d); cout << strlen(z) << endl; }
ESERCIZIO 3
#include <iostream> class X { int i, j, k; public: X() { i = j = k = 6; }; X(int ii, int jj=7, int kk=8) : i(ii), j(jj), k(kk) {}; int f() {return i - j - k;}; }; int main() { X x1(6, 8, 10); X x2(6, 8); X x3(6); X* x4 = new X; cout << x1.f() + x2.f() + x3.f() + x4->f() << endl ; }
ESERCIZIO 4
#include <iostream> class Z { static int i; public: Z(int ii=10) {i++;}; int valore() { return i; }; }; int Z::i=0; int main() { Z z1(2); Z* z2 = new B(2); Z z3; Z* Z4 = new Z; cout << Z4->valore() << endl ; }
ESERCIZIO 5
#include <iostream> int f(int& b, int n) { // attenzione alla logica degli return (++b) + (++n) ; // operatori di pre/post-incremento } int main() { int x(18), c(21); int z = f(x,c); cout << z + x + c << endl; }