Salve ragazzuoli.
Sono incorso in uno strano errore (e non ne riesco a venire a capo da ieri pomeriggio ormai) nel cercare di creare il mio primo "progetto" in C++.
In pratica volevo simulare una partita a carte...
Vi riporto le parti importanti del codice:
header.h
codice:
#include <string>
using std::string;
using namespace std;
class Carta{
private:
int numero;
string seme;
public:
Carta::Carta(int num, string s);
void Carta::stampaCarta();
};
class MazzoDiCarte{
private:
Carta mazzo[40];
public:
MazzoDiCarte::MazzoDiCarte();
// Carta* MazzoDiCarte::mischiaMazzo(Carta list[]);
// Carta MazzoDiCarte::pescaCarta();
};
class Partita{
public:
int prova;
};
carta.cpp
codice:
#include <string>
#include <iostream>
#include "header.h"
using namespace std;
Carta::Carta(int num, string s)
{
numero = num;
seme = s;
}
void Carta::stampaCarta()
{
cout << "Carta: " << numero << " " << seme << endl;
}
mazzoDiCarte.cpp
codice:
#include <string>
#include <iostream>
#include "header.h"
using namespace std;
MazzoDiCarte::MazzoDiCarte()
{
string semeCarta;
int i, j;
for(i=0; i<4; i++)
{
switch (i)
{
case 0: semeCarta = "Denari"; break;
case 1: semeCarta = "Bastoni"; break;
case 2: semeCarta = "Coppe"; break;
case 3: semeCarta = "Spade"; break;
}
for(j=0; j<10; j++)
{
Carta carta1 = Carta(j+1, semeCarta);
mazzo[10*i+j] = carta1;
// carta1.stampaCarta();
}
} // end for esterno
//stampa di prova
for(i=0; i<40; i++)
{
//cout << "Indirizzo: " << mazzo[i] << " - ";
mazzo[i].stampaCarta();
}
}
Utilizzando un array di puntatori a Carta, tutto va ok, tranne per il fatto che non mi stampa le carte nel secondo ciclo for (quello etichettato con "//stampa di prova"), utilizzando invece un normale array di oggetti Carta, ricevo il seguente errore:
codice:
C:\Dev-Cpp\My Projects\PartitaCarte\mazzoDiCarte.cpp In constructor `MazzoDiCarte::MazzoDiCarte()':
Linea 8 C:\Dev-Cpp\My Projects\PartitaCarte\mazzoDiCarte.cpp no matching function for call to `Carta::Carta()'
note C:\Dev-Cpp\My Projects\PartitaCarte\header.h:6 candidates are: Carta::Carta(const Carta&)
note C:\Dev-Cpp\My Projects\PartitaCarte\header.h:6 Carta::Carta(int, std::string)
C:\Dev-Cpp\My Projects\PartitaCarte\Makefile.win [Build Error] [mazzoDiCarte.o] Error 1
Potreste darmi una mano?
Ringrazio anticipatamente