1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106
|
#include <iostream>
using namespace std;
template <class tipo, class tipo1> class vettore {
private:
int dim;
tipo* array;
tipo1* array1;
public:
vettore(int);
~vettore(void);
void inserisci(void);
void stampa(void);
};
template <typename tipo, typename tipo1> void assegna(tipo&, tipo, tipo1&, tipo1);
template <class tipo> void scambia(tipo&, tipo&);
int main() {
int x;
string y;
int a = 10;
string b = "ciao";
vettore <string, int> c(2);
vettore <string, int> d(2);
c.inserisci();
d.inserisci();
c.stampa();
d.stampa();
assegna(x, a, y, b);
scambia(c, d);
c.stampa();
d.stampa();
cout << x << endl;
cout << y << endl;
system("pause");
}
template <typename tipo, typename tipo1> void assegna(tipo& x, tipo a, tipo1& y, tipo1 b) {
x = a;
y = b;
}
//COSTRUTTORE
template <class tipo, class tipo1> vettore <tipo, tipo1> :: vettore(int d)
{
dim = d;
array = new tipo[dim];
array1 = new tipo1[dim];
}
//DISTRUTTORE
template <class tipo, class tipo1> vettore <tipo, tipo1> :: ~vettore(void)
{
delete[] array;
delete[] array1;
}
template <class tipo, class tipo1> void vettore <tipo, tipo1> :: inserisci(void)
{
cout << "- Vettore di string -" <<endl;
for (int i = 0; i < dim; i++) {
cout << "Inserisci l'elemento alla posizione "<< i <<" : ";
cin >> array[i];
}
cout << endl;
cout << "- Vettore di interi -" <<endl;
for (int i = 0; i < dim; i++) {
cout << "Inserisci l'elemento alla posizione "<< i <<" : ";
cin >> array1[i];
}
}
template <class tipo, class tipo1> void vettore <tipo, tipo1> :: stampa(void)
{
cout<<endl;
cout << "Vettore di string:" <<endl;
for (int i = 0; i < dim; i++) {
cout << " ";
cout << array[i];
}
cout<<endl<<endl;
cout << "Vettore di interi:" <<endl;
for (int i = 0; i < dim; i++) {
cout << " ";
cout << array1[i];
}
cout<<endl<<endl;
}
template <class tipo> void scambia(tipo& x, tipo& y) {
tipo temp = x;
x = y;
y = temp;
}
|