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
carta.cppcodice:#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; };
mazzoDiCarte.cppcodice:#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; }
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:#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(); } }
Potreste darmi una mano?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
Ringrazio anticipatamente![]()

Rispondi quotando
Il punto è che il C lo so benino, però a lavoro m'hanno chiesto di imparare il C++ in 3 giorni :berto:
VVoVe: 