vuoi
o PayPal
tutte le volte che vuoi
#include <cstdlib>
#include <iostream>
using namespace std;
/*
Dichiarazione della classe generica Vettore:
incapsula un vettore statico di n elementi di tipo T
e possiede un metodo per accedere ai singoli elementi
*/
template <typename T, int n>
class Vettore
{
public:
T &operator[](unsigned int); // operatore di subscript
private:
T vett[n];
};
// Tipo Carta;
struct Carta {
char seme;
unsigned short valore;
};
int main()
{ // Semi delle carte
enum {cuori = 3, quadri, fiori, picche};
/* assegna a cuori il valore 3 del set standard dei caratteri
ASCII che corrisponde al simbolo del seme, seguito dagli altri
�
tre semi nell'ordine. In questo modo sar visualizzato il simbolo
relativo sulla console */
const int nCarte = 10, nSemi = 4;
/* �
mazzo un istanza di Vettore:
equivalente a una matrice nCarte x nSemi di elementi di tipo Carta
*/
Vettore < Vettore <Carta, nCarte>, nSemi > mazzo;
unsigned short valore, // riga
seme; // colonna
// Caratterizza il mazzo con i semi e i valori delle carte
for(seme = cuori; seme <= picche; seme++) {
for(valore = 1 ; valore <= nCarte; valore++) {
mazzo[seme - 3][valore - 1].seme = (char)seme;
mazzo[seme - 3][valore - 1].valore = valore;
}
}
cout <<"\n\tmazzo di carte\n" << endl;
// Visualizzazione del mazzo di carte sulla console
for(valore = 1 ; valore <= nCarte; valore++) {
for(seme = cuori; seme <= picche; seme++) {
cout.width(2);
// [seme - cuori] fornisce il valore iniziale [0]
cout << mazzo[seme - cuori][valore - 1].valore;
cout << (mazzo[seme - cuori][valore - 1].seme);